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.
Opowiem teraz o spalaniu plików XML.
Wiemy już z poprzednich lekcji że te pliki czyli pliki XML wykorzystywane są przez
agenta do definiowania pewnych konfiguracji czy np.
układu stron.
I teraz pojawia się taki problem bo np.
w kolorowych mundurach to są już pewne
konfiguracje czy układy stron zdefiniowane.
I teraz jeśli byśmy chcieli je modyfikować to musielibyśmy tworzyć
rozszerzać czy modyfikować właśnie w tych plikach kolorowych.
Tutaj pojawia się taki problem że podczas
aktualizacji modułów te pliki zostaną napisane więc musiał powstać mechanizm
który pozwoli nam na modyfikowanie tych konfiguracji z poziomu naszych modułów.
Dlatego też Przejdziemy teraz do edytora
tekstu gdzie pokaże jak to wszystko wygląda.
Na potrzeby przykładu Przygotowałem dwa
moduły pierwszy XML oraz drugi XML Aleksander.
Na razie zajmiemy się tym pierwszym w tym module.
Pierwszy plik XML nazwany jest XML.
Znajduje się tutaj definicja ratingu strony którą później pokaże
następny plik jest to plik XML i za pomocą tego pliku rozszerzyły pewną
konfigurację która jest zawarta w module katalog.
Przejdziemy więc teraz do modułu katalog.
Fedor.
To katalog.
Do folderu FCC w którym jest plik XML.
Przejdźmy do linii 293 ponieważ ta linia nas teraz interesuje.
Tutaj pokrótce powiem o co chodzi z typem
gier więc może to stworzyło taką klasę jak Fighter i następnie w pliku XML
skonfigurować to argument dla konstruktora.
Argument nazwany JESLI JEST ON typu Ray czyli tablica i następnie do tej tablicy
zostały dodane takie trzy elementy które informują
właśnie klasę o tym jakie są dostępne typy.
My teraz chcemy dodać np.
nowy typ do konstruktora tej klasy.
Aby to zrobić musimy przejść do naszego modułu w którym chcemy dodać nową
konfigurację czyli w tym przypadku będzie to moduł XML miernik.
I teraz bardzo ważne jest to że podczas scalenia plików XML ważna jest ścieżka do
danego pliku XML czyli w tym przypadku jeśli znajdujemy się w module
katalog i plik konfiguracji XML znajduje się w folderze etyce
to dokładnie tak samo w tym samym w tym samym w tej samej ścieżce musi się znaleźć
w naszym module na przykład jeszcze pokaże folder front.
Tutaj też jest zawarty plik XML odnośnie
tych nazw katalogów czyli admin HTML front opowiem w następnej lekcji.
Natomiast nie jest to teraz ważne.
Ważne jest to że jeśli dany plik XML znajduje się w folderze front to żeby on
został scalone to konieczne jest tworzenie odwzorowanie dokładnie tej samej ścieżki w
naszym module więc z racji że my chcemy napisać
nawet nie napisać co dodać nowy typ ale ten typ znajduje się w folderze
bezpośrednio i w pliku XML no to właśnie przechodzimy do naszego modułu.
Ja już stworzyłem wcześniej ten plik ale
zwróćmy uwagę że jest on w folderze TC i następnie od razu plik XML.
Przejdźmy do niego.
Teraz dodamy sobie nowy typ do tamtej klasy co pijemy.
Wróćmy do tego pliku.
Skupimy nazwę klasy.
Nie będziemy wpisywać ręcznie tylko od razu reklamę
plug ma to do 5 historię oraz wygenerowane wcześniej URL będą nam podpowiadać jakie
są dostępne argumenty dla konstruktora klasy link typ liter.
W tym przypadku mamy dostępne cztery.
Nas interesuje jednak argument link.
Najpierw musimy zdefiniować.
Typ tego argumentu.
Następnie dodajemy kolejny element
aby to zrobić wykorzystujemy słowo kluczowe a nam to będzie test.
I znowu musimy podać jakiego typu jest ten argument podajemy ich.
Oraz niech to będzie typ string.
Załóżmy że wartością dla naszego argumentu
test też będzie wartość test w jaki sposób ma to stali teraz te pliki.
Z racji że w module XML Emerging
daliśmy zależność od modułu katalog to moduł katalog najpierw zostanie załadowany
więc może to podczas ustalania plików XML najpierw ładuje plik XML z moduł.
Katalog będzie widziało informacje odnośnie argumentów dla klasy liter.
A następnie
podczas ustalania pliku XML z modułu XML Marcin będzie wiedziało że
jest też definicja argumentu dla klasy link i że tutaj dodany jest nowy argument.
Nowy element tablicy.
Dlatego też ma to automatycznie scali te dwa pliki.
I teraz dla przykładu otworzy sobie nowy plik scratch.
W tym pliku pokaże w jaki sposób ma to
połączyć właśnie te dwa pliki czyli wróćmy do pliku XML modułu katalog kolejny
tom informacje o klasie link prowadzi do naszego.
I następnie skupimy sobie te informacje z naszego modułu.
Dobrze w tej kolejności może to widzi informacje o tej klasie.
Dlatego też z racji że za drugim razem w
module XML Emerging znajduje się i nazwa czyli wartość dla trybutu nam
pokrywa się z tą samą wartością powyżej czyli z modułu katalog.
Może to będzie próbowało ustalić kolejne tagi w kolejnych zamierzeniach czyli
kolejnym takim jest argument który też się pokrywa.
Następnie argument i wartością kluczową w tym momencie jest link
ponieważ to on definiuje ten identyfikator po którym wartość jest ustalona
i kolejnym elementem jest argument nowy element tablicy czyli w tym przypadku
tekst i ten element zostanie dodany na samym końcu tablicy.
W ten sposób to będzie strzelało nasze pliki XML.
Jeśli byśmy zmienili i np.
w naszym module nazwali text czyli ten nowy element release czyli tak samo jak
jest w module katalog no to w tym momencie mamy możliwość wpisania wartości Release z
modułu katalog i w tym momencie nie będzie to stała która jest zdefiniowana tutaj
tylko będzie to nasza wartość zdefiniowana w naszym Module.
Wróćmy teraz do pliku XML sprawdzimy czy wszystko jest tak jak ma być usunięte.
Dobra w tym momencie link prowadzi
do klasy link dodajemy nowy element dla argumentu link
aby to sprawdzić Przejdziemy teraz do konsoli.
Zanim pokaże jak wyświetlić informację o
klasie konieczne będzie uruchomienie polecenia bin to
C oraz najlepiej podamy sobie konflikt jako typ który chcemy wyczyścić.
Kiedy został wypuszczony a my teraz wykorzystamy taką metodę
taką komendę jak bin laden to the di Info która wyświetli nam informacje
związane z The Jackson czyli wyszukiwaniem zależności.
Jako argument konieczne jest podanie nazwy
klasy pełnej nazwy klasy którą chcemy sprawdzić.
W tym przypadku jest to link prowadzi więc
jako argument wartość chwilkę musimy poczekać aż załatwię tę informację.
Wymyśliliśmy konflikt więc wszystkie
informacje które ładują się w konflikt muszą zostać załadowane.
Po wykonaniu komendy
info zostały wyświetlone informacje o danej klasie możemy tutaj zobaczyć w
tabeli jakie argumenty są w strukturze danej klasy jakiego one są
typu oraz jakie wartości zostały skonfigurować.
W pliku XML Domyślnie dostępne są tylko opcje Axel oraz Associated.
Natomiast z racji że to ustaliło nasz plik XML z modułu katalog
został dodany nowy element test tak jak pokazywały wcześniej.
Ten element został dodany na końcu tablicy
i właśnie dlatego ważne jest aby skonfigurować zależności między klasami
ponieważ kolejność modułów może wpływać na to w którym miejscu np.
taki element się znajdzie.
W tym przypadku mimo że nie ma to
większego znaczenia w jakim miejscu by się to znalazło czy na początku tej tablicy
czy na końcu jednak są pewne sytuacje w których to ma ogromne znaczenie.
Dlatego jeszcze raz powtórzę tak jak już to mówię w poprzedniej lekcji
ważne jest aby przy nadawaniu nowych modułów lub przy rozszerzaniu np.
już modułów które zostały wcześniej stworzone pamiętać że jeśli dany moduł
zależy od innego to trzeba bezwzględnie dodać tą informację do pliku moduł XML
pokaże jeszcze teraz na przykładzie pliku z układem auto.
Jak wygląda scalenie w tym obszarze.
Dlatego też przechodzimy do folderu View w tym samym module XML Emerging.
Następnie do katalogu front oraz lead.
Tutaj znajduje się taki plik XML.
Dlaczego jest tak nazwany.
Dowiemy się w kolejnych rozdziałach natomiast.
Natomiast ważne jest to że ten plik dodaje
konfigurację dla strony URL XML a za chwilę na nią wejdziemy.
Tutaj nie będę opowiadał dokładnie co się w tym pliku znajduje.
Opowiem to w następnych rozdziałach
wspomnę tylko tutaj że dodany jest blok oraz szablon HTML.
I teraz jeśli chcemy np.
rozszerzyć dodać nowy blok nowy szablon właśnie dla tej strony
to musimy tak jak w przypadku pliku XML zachować po pierwsze ścieżkę do
danego pliku oraz nazwę tego teraz dla przykładu w module XML Extended odwołujemy
właśnie tę ścieżkę czyli tak samo View front and lead.
I tu pojawił się znowu ten sam plik XML w test.
Weźmy sobie do niego
przygotowałem tutaj testową zawartość którą teraz komentujemy.
I następnie przejdziemy do przeglądarki.
Po zalogowaniu na tej stronie zobaczymy
taką informację wyświetlono jak egzemplarz oraz Excel XML egzemplarz.
Już teraz mówię skąd to się pojawiło.
Przechodzimy do edytora kodu do folderu XML Emerging w tym folderze
jest zdefiniowane szablony HTML który dodaje informacje Web XML.
Egzemplarz który wyświetla się na samej górze.
Dzięki temu że w module XML ECS Center
przygotowaliśmy taką samą ścieżkę i nazwę pliku jak w module XML Emerging
dotarliśmy tutaj konfigurację nowego bloku którego szablon nazwany jest Extended HTML
i też znajduje się w folderze o nazwie Extended HTML.
I tutaj zawartość tego pliku Extended XML egzemplarz dzięki czemu
po wejściu na stronę pojawi się dokładnie na tej samej stronie czyli konfiguracja
została połączona wyświetli się właśnie te dwie informacje pod sobą scalenie plików
XML jest wykorzystywane na co dzień podczas pracy developera.
Może to dlatego bardzo ważne jest aby
wiedzieć po pierwsze o kolejności ładowania modułów.
Jak już wspominałem wiele razy oraz o tym że ścieżka do pliku oraz nazwa
tego pliku musi być dokładnie taka sama jak tą którą chcemy ustalić.