od Podstaw
5 godz. 56 min · PHP · Full-stack i Programowanie
Patryk WaluśBackend DeveloperZanim przejdziemy do omawiania możliwości Magento, przedstawię Ci w jaki sposób skonfigurować środowisko developerskie oraz jak zainstalować nowy projekt. Omówimy też polecenia i narzędzia, które są przydatne podczas pracy developerów.
Rozpoczniemy od przedstawienia oraz omówienia funkcji poszczególnych katalogów, które znajdują się w projekcie. Po wstępie stworzymy swój pierwszy moduł oraz przedstawię podstawowe techniki wykorzystywane przez Magento do zarządzania konfiguracjami czy modułami.
Magento wykorzystuje bardzo popularny wzorzec MVC, który składa się z trzech elementów. Aby z łatwością rozumieć jak system obsługuje żądania HTTP najpierw przestawię ogólne działanie MVC, a następnie jak to działa w Magento.
Szczegółowe omówienie wzorca MVC rozpoczniemy od literki C czyli Controller'a. W tym rozdziale dowiesz się jak zarejestrować w systemie nową ścieżkę, jak pobierać parametry oraz w jaki sposób zwrócić rezultat odpowiedni dla danego przypadku.
Gdy już zarejestrujemy nową stronę, konieczne będzie zdefiniowanie jej wyglądu. Dlatego też, przedstawię Ci jak to zrobić oraz jakie możliwości Magento udostępnia do manipulacji układem stron. Omówię różnice między kontenerem, a blokiem oraz pokaże jak modyfikować tagi w sekcji.
Aby wcześniej dodana strona była funkcjonalna, konieczna jest jej integracja z bazą danych. Do tego celu stworzymy m.in. Model, za pomocą którego będziemy komunikować się z MySQL. Przedstawię Ci też dobre praktyki, które pozwalają na tworzenie kodu wysokiej jakości.
W ostatnim rozdziale omówimy konfigurację nowego motywu w Magento. Pozwoli Ci to zrozumieć jak tworzyć różne wersje wyglądu dla sklepów internetowych.
Ten kurs w szczególności przyda się osobom, które chcą poznać podstawy framework'a Magento 2. Przedstawione w nim fundamentalne informacje pomogą zrozumieć sposób działania systemu, a także w jaki sposób można dodawać czy rozszerzać swój projekt o nowe funkcjonalności.
Podczas tworzenia swoich własnych modułów konieczne jest opamiętanie.
O kolejności ich ładowania Należy tutaj wspomnieć że wyróżniamy po
pierwsze zależności modułów które są zdefiniowane w pliku kompozytor Jackson.
I to właśnie kompozytor zarządza nimi aby
dany moduł jeśli zależy od drugiego posiadał wszystkie zależności.
Natomiast jeśli chodzi o kolejność
ładowania to to w pliku XML znajduje się taka wartość jak Sixers dzięki której
ustalamy zależności ale chodzi bardziej o kolejność w której te moduły są ładowane.
I teraz chodzi o to że jeśli jeden moduł np.
korzysta z bazy danych czyli np.
z tabeli z produktami
to konieczne jest aby najpierw załadować wszystkie skrypty instalacyjne które
dodają te dane do bazy danych do tej tabeli z produktami lub też np.
modyfikuje pewne kolumny czy też w ogóle tabele i jeśli np.
w naszym module wykorzystujemy taką tabelę jak katalog NTT w której są
zawarte informacje o produktach ale tej tabeli jeszcze nie ta tabela
jeszcze nie będzie utworzona z racji że nasz moduł znajdował się np.
przed modułem z produktami to pojawi się błąd.
Natomiast jeśli my definiujemy w pliku moduł XML tę zależność.
I tutaj pokażemy na jaki moduł to.
To zapewni to że moduł z produktami zostanie załadowany wcześniej.
Następnie nasz moduł Przejdziemy teraz do edytora kodu.
Przygotowałem dwa moduły nazwane moduł AI oraz moduł BI.
Na razie w pliku pierwszego modułu XML nie ma żadnej zależności.
Tak samo w drugim module metodami też nie ma podanej żadnej zależności.
Przejdźmy teraz do przeglądarki.
Jednak zanim otworzy stronę bardzo proszę.
Uruchom polecenie.
Najlepiej z opcją generator ja zrobiłem to wcześniej dlatego już
odświeża stronę i przejdziemy do omawiania kolejności modułów w module A.
Dodałem pewne na wpisanie klasy która
generuje stronę główną tak samo w module b.
Dodałem dokładnie tak samo takie samo
rozszerzenie które dodaje informacje akurat o module b.
Z racji że żaden moduł nie ma zależności od drugiego
ma to załadować je w kolejności alfabetycznej czyli najpierw załadowane
został moduł moduł a natomiast kolejny moduł b.
Z racji że alfabetycznie jest on dalej został załadowany na samym końcu.
Dlatego też widzimy tutaj informację o tym że został załadowany moduł b.
Natomiast jeśli to moduł a ma być wykonany na końcu czyli najpierw ma wykonać moduł B
a następnie moduł a to konieczne jest zdefiniowanie tej zależności w pliku XML.
Dlatego też przejdziemy do edytora kodu do modułu a i w pliku moduł XML.
Następnie dodamy tutaj informację o tym że ten moduł jest zależny od modułu b.
Następnie aby to poprawnie zaatakowało
sekwencję tych modułów konieczne jest przejście do konsoli i wykonanie metody
Bin Laden to taki generator dokumentacji znajduje się informacja o tym że tylko i
wyłącznie metoda Bin Laden to moduł naboju powoduje generowanie tej sekwencji.
Natomiast sprawdziłem i etap też na to pozwala.
Dlatego też możemy ją wykorzystać.
Aby sprawdzić czy sekwencja została zmieniona musimy wejść do folderu
UTC konflikt PHP wyszukuje teraz zawartość ADD Web modlił się i modlił a.
Widzimy teraz że
moduł B jest hodowanych wcześniej ponieważ moduł a wykorzystuje właśnie ten moduł B
do pewnych celów w tym przypadku bliżej nieokreślonych.
Dzięki temu że kolejność w pliku PHP się zmieniła gdy wejdziemy teraz na stronę
stronę główną naszego sklepu zamiast tekstu moduł B będzie wyświetlony
moduł a oczywiście zostały wypuszczone więc czekamy aż się strona załamuje.
Po otworzeniu strony znajdował się tam tekst moduł A czyli to właśnie ten moduł a
jest na samym końcu przetwarzania czyli najpierw był.
Następnie jest załadowany moduł A.
Na koniec tej lekcji dodamy sobie jeszcze cykliczną zależność.
Aby zobaczyć jaki błąd zwróci nam marzenia to Przejdźmy więc do edytora kodu.
Następnie z powrotem wracamy do
katalogu ABC Web i przechodzimy teraz do modułu B do pliku XML.
I tutaj dokładnie tak samo jak wcześniej
dodajemy informacje o zależności od modułu a wykonamy z powrotem pisma.
I tutaj już na samym początku wykonania tej komendy
często zwraca nam informację o tym że moduł B jest w cyklicznych zależności od
modułu a dzięki czemu od razu mamy informację o tym że nie może
się system zaplanować i możemy taką zależność poprawić.
Udało nam się zobaczyć jak wygląda
kolejność ładowania modułów jak moduły oddziałują na inne oraz jaki błąd
wyświetla się podczas cyklicznych zależności między modelami.
Warto jest dodawać informacje o zależnych modelach.
Właśnie dlatego aby mieć pewność że
wszystko odbywało się w odpowiednim porządku.