Wygląda na to, że nie mają dokumentacji, z wyjątkiem niektórych wywołań API na ich oficjalnych forach. Mam doświadczenie z frameworkiem Zend i CodeIgniter. Czy jacyś mistrzowie OpenCart mogą polecić mi najlepszy sposób nauczenia się tego i opanowania w jak najkrótszym czasie? Wkrótce muszę z nim zrobić duży projekt.
98
Odpowiedzi:
Przewodnik szybkiego startu dla programistów OpenCart 1.5.X dla początkujących
Ten przewodnik jest przeznaczony dla programistów już zaznajomionych z PHP, OOP i architekturą MVC
Poniżej zobaczysz przykłady strony katalogu koszyka. Strona administratora ma identyczne funkcje, z wyjątkiem widoków, które opisano w odpowiedniej sekcji
Zrozumienie bibliotek
Wszystkie funkcje biblioteki są dostępne za pośrednictwem kontrolera, modelu i widoków przy użyciu
$this->library_name
. Wszystko to można znaleźć w/system/library/
folderze. Na przykład, aby uzyskać dostęp do produktów z bieżącego koszyka, musisz użyćCart
klasy, która jest dostępna/system/library/cart.php
i można uzyskać do niej dostęp za pomocą$this->cart->getProducts()
Powszechnie używane przedmioty
customer.php
- Funkcje związane z klientemuser.php
- Funkcje związane z administratoremcart.php
- Funkcje związane z koszykiemconfig.php
- Wszystkie ustawienia są wczytywane z tegourl.php
- Funkcje generowania adresów URLZrozumienie parametru trasy
Struktura OpenCart opiera się na
route=aaa/bbb/ccc
parametrze ciągu zapytania, aby wiedzieć, co załadować, i jest podstawą do znajdowania plików, które musisz edytować dla każdej strony. Większość tras używa w rzeczywistości tylko tych,aaa/bbb
które powinny być postrzegane jako dwie części, jednak niektóre zawierają trzy częściaaa/bbb/ccc
. Pierwsza część jestaaa
ogólnie związana z folderem w folderze ogólnym, takim jak folder kontrolera lub folderów szablonów. Druga część dotyczy zwykle nazwy pliku, bez odpowiedniego rozszerzenia.php
lub.tpl
rozszerzenia. Trzecią część wyjaśniono w sekcji „Zrozumienie kontrolerów” poniżejZrozumieć języki
Języki są przechowywane w
/catalog/language/
folderze wyour-language
podfolderze. W ramach tego ogólne wartości tekstowe używane na różnych stronach są przechowywane wyour-language.php
pliku wewnątrz folderu, więc dla języka angielskiego po stronie katalogu wartości znajdziesz wcatalog/language/english/english.php
. W przypadku określonego tekstu strony będziesz potrzebowaćroute
dla strony (zwykle tak jest, ale nie zawsze, ponieważ możesz określić dowolny plik językowy). Na przykład strona wyszukiwania ma trasęproduct/search
, a zatem tekst specyficzny dla języka dla tej strony można znaleźć wcatalog/language/english/product/search.php
(Zwróć uwagę, że nazwa pliku i podfolder są zgodne z trasą, po której następuje.php
.Aby załadować język do kontrolera, używasz
Następnie możesz użyć funkcji biblioteki języków,
get
aby pobrać określone teksty językowe, takie jakZmienne językowe są przypisywane w pliku językowym za pomocą specjalnej zmiennej,
$_
która jest tablicą kluczy i wartości tekstowych. W swoim/catalog/language/english/product/search.php
powinieneś znaleźć coś podobnego doWartości w globalnym pliku językowym
english/english.php
są automatycznie ładowane i dostępne do użycia bez$this->language->load
metodyZrozumienie kontrolerów
Kontrolery są ładowane w oparciu o
route
i są dość proste do zrozumienia. Kontrolery znajdują się w/catalog/controller/
folderze. Kontynuując z ostatniego przykładu, kontroler strony wyszukiwania znajduje się w/product/search.php
tym folderze. Zwróć uwagę ponownie, że.php
używana jest trasa, po której następuje.Otwierając plik kontrolera, zobaczysz nazwę
Controller
klasy Pascal Case rozszerzającą klasę o nazwieControllerProductSearch
. To znowu jest specyficzne dla trasy, zController
następującą po niej nazwą podfolderu i nazwą pliku bez rozszerzenia pisanego wielkimi literami. W rzeczywistości wielkie litery nie są wymagane, ale są zalecane w celu ułatwienia czytania. Warto zauważyć, że nazwy klas nie pobierają żadnych wartości z podfolderu i nazwy pliku poza literami i cyframi. Podkreślenia są usuwane.W klasie są metody. Metody w zadeklarowanej klasie
public
są dostępne do uruchomienia przez trasę -private
nie są. Domyślnie w przypadku standardowej trasy dwuczęściowej (aaa/bbb
powyżej)index()
wywoływana jest metoda domyślna . Jeśliccc
używana jest trzecia część trasy ( powyżej), ta metoda zostanie uruchomiona zamiast tego. Na przykładaccount/return/insert
załaduje/catalog/controller/account/return.php
plik i klasę i spróbuje wywołaćinsert
metodęZrozumienie modeli
Modele w OpenCart znajdują się w
/catalog/model/
folderze i są pogrupowane na podstawie funkcji, a nie trasy, dlatego będziesz musiał załadować je do kontrolera za pośrednictwemSpowoduje to załadowanie pliku do podfolderu o
xxx
nazwieyyy.php
. Jest wtedy dostępny do użycia za pośrednictwem obiektui tak jak w przypadku kontrolerów, możesz wywoływać tylko jego
public
metody. Na przykład, aby zmienić rozmiar obrazu, należy użyćtool/image
modelu i wywołać jegoresize
metodę w następujący sposóbZrozumienie przypisania zmiennych w widokach ze sterownika
Aby przekazać wartości do widoku ze sterownika, wystarczy przypisać dane do
$this->data
zmiennej, która jest w istocie tablicą par klucz => wartość. Jako przykładDostęp do tego w widoku powinien być łatwy do zrozumienia, jeśli znasz metodę extract () , która konwertuje każdy klucz na zmienną. Zatem
example_var
klucz staje się$example_var
i może być dostępny jako taki w widoku.Zrozumienie tematów
Motywy są dostępne tylko po stronie katalogu i są w zasadzie folderem szablonów, arkuszy stylów i obrazów motywów. Foldery motywów są umieszczane w
/catalog/view/theme/
folderze, po którym następuje nazwa motywu. Nazwa folderu nie ma znaczenia, z wyjątkiemdefault
folderuUżywa strona administratora
/admin/view/template/
(pomijanie/theme/theme-name/
ze ścieżki, ponieważ nie pozwala na różne motywy)Pliki szablonów znajdują się w
template
folderze w folderze motywu. Jeśli jakikolwiek szablon nie jest dostępny dla aktualnie wybranego motywu, zamiast niego zostanie użyty szablon domyślnego folderu. Oznacza to, że motywy można tworzyć z bardzo małą liczbą plików i nadal w pełni funkcjonować. Zmniejsza również powielanie kodu i problemy z aktualizacjamiZrozumienie widoków (szablony)
Podobnie jak w przypadku języka i modeli, pliki widoku są generalnie związane z trasą, chociaż wcale nie muszą. Szablony po stronie katalogu zwykle znajdują się w programie,
/catalog/view/theme/your-theme/template/
chyba że nie istnieje, w takim przypadku zostaną użyte domyślne szablony motywu. W powyższym przykładzie strony wyszukiwania plik toproduct/search.tpl
. W przypadku tras z trzema odcinkami jest to zwykle w,aaa/bbb_ccc.tpl
chociaż nie ma sztywnej reguły. W panelu administracyjnym większość stron postępuje zgodnie z tym, z wyjątkiem stron z listą elementów, takich jak strona z listą produktów,catalog/product_list.tpl
i jest dostępny formularz edycji produktucatalog/product_form.tpl
. Ponownie, nie są one ustawione, ale są standardem dla domyślnego koszyka.Plik szablonu jest w rzeczywistości tylko kolejnym plikiem php, ale z rozszerzeniem .tpl i jest faktycznie uruchamiany w pliku kontrolera, dlatego wszystkie rzeczy, które możesz zakodować w kontrolerze, mogą być uruchomione w pliku szablonu (chociaż nie jest to zalecane, chyba że absolutnie niezbędny)
Zrozumienie obiektu bazy danych
Zapytania są uruchamiane przy użyciu
DB_PREFIX
jak sama nazwa wskazuje jest stałą zawierającą przedrostek bazy danych, jeśli taki istnieje$result
zwróci obiekt doSELECT
zapytań, zawierający kilka właściwości$result->row
zawiera dane pierwszego wiersza, jeśli co najmniej jeden jest zwracany jako tablica asocjacyjna$result->rows
zawiera tablicę wyników wierszy, idealną do zapętlenia przy użyciu foreach$result->num_rows
zawiera liczbę zwróconych wyników$this->db
Obiekt posiada również kilka dodatkowych metod$this->db->escape()
używa mysql_real_escape_string () na przekazanej wartości$this->db->countAffected
zwraca liczbę wierszy, na które ma wpływUPDATE
zapytanie, i tak dalej$this->db->getLastId()
zwraca ostatni identyfikator automatycznego zwiększania za pomocą mysql_insert_id ()Zrozumienie zarezerwowanych zmiennych
OpenCart posiada predefiniowane zmienne do wykorzystania w miejsce standardowego
$_GET
,$_POST
,$_SESSION
,$_COOKIE
,$_FILES
,$_REQUEST
I$_SERVER
$_SESSION
jest edytowany za pomocą$this->session->data
gdzie dane są tablicą asocjacyjną naśladującą$_SESSION
Do wszystkich innych można uzyskać dostęp za pomocą
$this->request
i zostały „wyczyszczone”, aby zachować zgodność z magicznymi cudzysłowami włączonymi / wyłączonymi, więc$_GET
staje się$this->request->get
$_POST
staje się$this->request->post
$_COOKIE
staje się$this->request->cookie
$_FILES
staje się$this->request->files
$_REQUEST
staje się$this->request->request
$_SERVER
staje się$this->request->server
Podsumowanie
Chociaż powyższe nie jest niezawodnym przewodnikiem dla programistów, mam nadzieję, że będzie dobrym punktem wyjścia dla początkujących
źródło
Globalne metody biblioteczne: podstawowe funkcje biblioteki opencart wraz z ich funkcjami, większość z nich można wywołać z dowolnego miejsca w katalogu lub folderach administracyjnych (kontrolery, modele, widoki)
źródło
Istnieje witryna OpenCart Wiki z dokumentacją dla początkujących programistów. Aby uzyskać więcej informacji, postępuj zgodnie z adresami URL podanymi poniżej:
http://wiki.opencarthelp.com/doku.php?id=starthttp://wiki.opencarthelp.com/doku.php?id=methods_referenceLinki do ARCHIWUM INTERNETU
http://web.archive.org/web/20160305131349/http://wiki.opencarthelp.com/doku.php?id=start http://web.archive.org/web/20160305131349/http://wiki .opencarthelp.com / doku.php? id = methods_reference
Np. Odniesienie do metody zawiera szczegóły dotyczące:
Wciąż jest kilka stron w budowie, ale będzie to pomocne.
[Aktualizacja]
Od stycznia 2018 r. Domena opencarhelp.com nie działa.
źródło
Chociaż na ten temat odpowiadano już wiele razy, chciałbym zaproponować inne podejście do masteringu OpenCart w oparciu o moje doświadczenie.
Uczenie się na doświadczeniach
Tworząc od podstaw własną platformę OpenCart z kilkoma plikami, możesz zrozumieć, jak wszystko jest połączone. Będę naśladować dla Ciebie strukturę plików OpenCart.
Utwórz plik
index.php
1. Rejestr
Opencart używa wzorca rejestru, aby wyświetlić wszystkie wystąpienia załadowanych klas. To serce Twojej aplikacji OpenCart. Obiekt rejestru jest następnie przekazywany do każdej kategorii, modelu i biblioteki w celu szybkiego dostępu do innych obiektów.
utwórz plik ze ścieżką
/system/engine/registry.php
w Twoim
index.php
2. Wyjście
Teraz dodajmy wyjście, które w przyszłości będzie naszym kodem HTML. W końcu chodzi o to, żeby wysłać do przeglądarki ciąg tekstu.
Utwórz plik
system/library/response.php
i w swoim
index.php
3. Kontrolery
Pomyśl o kontrolerach jak o stronach. Określą, co będzie wyświetlane klientowi: tekst, html, json, download czy nawet obraz. Na razie potrzebujemy tylko strony, która wysyła tekst.
Stworzymy kontroler dla
home
strony.dodaj plik ze ścieżką
catalog/controller/common/home.php
i edytuj swój
index.php
4. Router
Nie chcemy, aby kontrolery były zakodowane na stałe, prawda. Użyjemy parametru
route
z adresu url, aby poinformować nasz koszyk, który kontroler ma załadować.Utwórz plik ze ścieżką
system/library/request.php
Utwórz klasę Routera, która będzie odpowiedzialna za inicjalizację pliku kontrolera na podstawie trasy (innymi słowy: dynamiczne wywołanie kontrolera)
załaduj go do swojego
index.php
Ten post jest już za długi, ale mam nadzieję, że da podstawowe zrozumienie wzorca MVC w OpenCart.
Zajrzyj również na mój Youtube https://www.youtube.com/dreamvention i mój blog https://dreamvention.com/blog Zamieszczę tam więcej wskazówek i samouczków dla was!
źródło
PHP to dość duży język z ponad 5000 wbudowanych funkcji więc jedną ze strategii uczenia się nowej platformy jest identyfikacja funkcji, których używa najczęściej i poświęcenie czasu na ich bardzo dobre poznanie.
Uruchomiłem kilka zapytań dotyczących kodu źródłowego OpenCart, a 10 najczęściej używanych funkcji to:
Wszystkie 52 wymienione tutaj, a także polecenia bash Linuksa, których możesz użyć w dowolnej bazie kodu do identyfikacji często używanych funkcji: https://www.antropy.co.uk/blog/efficient-learning-for-new-opencart-developers/
źródło
Ta lista odtwarzania filmów z YouTube może być również pomocna, aby zostać guru programisty OpenCart:
Samouczki wideo OpenCart
Wzorzec MVCL, przepływ kodu oraz żądanie i odpowiedź w OpenCart Pokazuje wzorzec MVCL, przepływ kodu oraz żądanie i odpowiedź w OpenCart. Opisują przepływ jak na poniższym obrazku:
Instalowanie, konfigurowanie i odinstalowywanie modułu OpenCart Pokazuje trzy sposoby przesyłania modułów, a następnie instalowania, konfigurowania i odinstalowywania modułu / rozszerzenia OpenCart 3.
Układy i pozycja w Opencart 3 Opisuje układy i pozycje OpenCart 3. Pokazuje, jak wyświetlać niestandardowe układy dla różnych stron, podając przykłady stron kategorii. Pokazujemy inny układ dla innej kategorii.
Przegląd wydarzeń w Opencart Dowiesz się, jakie wydarzenia są w OpenCart, jak działają i co sprawia, że są tak przydatne.
Dokumentacja Opencart API dla programistów Ten film pokaże, jak używać i tworzyć niestandardowe API Opencart
Gdy zobaczysz te filmy, możesz rozpocząć kodowanie :)
źródło