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.
Mówiłem sobie jeszcze w tej lekcji tryby działania maczetą.
Było to wspomniane wcześniej natomiast teraz zagłębić się w szczegóły.
Jeszcze trochę brakuje nam i zaczniemy
opowiadać ma to jeszcze tylko kilka lekcji w następnym rozdziale
o tych lekcjach opowiem o architekturze jak zainstalować nowy moduł
i przejdziemy do następnej nauki już bardziej szczegółowych aspektów.
Natomiast teraz zanim przejdziemy do tych aspektów bardzo ważna
jest wiedza w jaki sposób tryby oddziałują na marzec.
W dokumentacji znajduje się opis dostępnych trybów oraz też jakie
wartości systemu oddziałują domyślną opcją po zainstalowaniu agentom jest opcja D.
Jest to połączenie trybu deweloperskiego oraz produkcyjnego.
Jednak zarówno nie jest on zoptymalizowany pod tryb deweloperski ani produkcyjny.
Dlatego też zazwyczaj po instalacji tak jak my zrobiliśmy to w lekcji
zainstalowaniu przeszliśmy od razu na tryb deweloperski.
W przypadku produkcji czy już sklepu działającego na serwerze
produkcyjnym najlepiej jest wykorzystać właśnie tryb Production.
Tryb deweloperski pozwala nam na
szybszą odpowiedź to w przypadku pewnych błędów czyli mamy
szybszy Fit back jeśli coś pójdzie nie tak po karze za chwilę na przykładzie
jak to wszystko wygląda jak można wykorzystać tę opcję.
Natomiast też
warto wspomnieć że w tym trybie generowane są automatycznie pewne
pliki i są to zarówno pliki statyczne takie jak CSS czy też HTML oraz też
wykonywana jest przez to automatyczna Kompilacja kodu.
Wspomnę że kompilacja nie jest to taka
stricte kompilacja jak to jest w języku Java czy C++.
Bardziej chodzi tutaj o to że to generuje pewne klasy w zależności od konfiguracji
independence in Jackson i wykorzystuje to np.
klasy Inter Capture które są
wykorzystywane później podczas ładowania loginów lub też klasy Factory które
pozwalają na tworzenie nowych instancji obiektów pewnych klas.
Dodatkowo w tym trybie mamy możliwość skonfigurować np.
logowania QWERTY do bazy danych czy też
szczegółowych błędów w plikach w folderze War.
Dodatkowo oczywiście te błędy wyświetlają się bezpośrednio na stronie internetowej.
Niestety wszystko ma swoje koszty
dzięki szybkiemu futbolowi ze strony maczetą oraz automatycznej generacji
pewnych plików to ładuje się wolniej przez co
wchodzenie na niektóre strony które nie mają wygenerowanych pewnych plików czy też
klas musimy chwilę poczekać aż to wszystko się załatwia w trybie produkcyjnym
wykorzystywane są pewne polecenia agentom które służą do wygenerowania np.
plików statycznych czy też kompilacji kodu
i jest to wszystko wykonywane w trakcie meczu dzięki czemu po skompletowanie i
wygenerowanie wszystkich tych plików strona ładuje się o niebo szybciej.
Właśnie z tego powodu że wszystko już jest
przygotowane nic nie dzieje się automatycznie.
A warto wspomnieć że jeśli brakuje
jakiegoś pliku w trybie produkcyjnym no to pojawia się taki problem że
pewna strona na której brakuje tego pliku czy też klasy może nie działać.
Przejdziemy teraz do edytora kodu aby
praktycznie porozmawiać o tym w jaki sposób tryb deweloperski
działa zademonstrować na przykładach w jaki sposób wszystko się odbywa.
Jesteśmy teraz w module Web Display moc w klasie też moc jest to blok.
Na tę chwilę to powinno wystarczyć.
Więcej będzie później
przygotujemy teraz pewien błąd tak naprawdę spróbujemy wyrzucić wyjątek.
Dodamy nazwę test kot albo test message.
I teraz bardzo ważna zanim otworzymy stronę która wywoła ten błąd.
Ważne jest jeśli chcesz to sprawdzić.
Przejście do konsoli i uruchomienie polecenia bin to set up upgrade.
Nie najlepiej wykonanie dodanie opcji Keep generator.
Spowoduje to zainstalowanie tego modułu
bo jeśli tego nie zrobimy to ta strona tak naprawdę ten moduł
który daje pewną stronę nie będzie w ogóle działał.
Więc jeśli chcesz ze mną sprawdzać co się dzieje w przeglądarce na naszej stronie
internetowej konieczne jest uruchomienie tej komendy.
Przypomnę że opcja generator pozwala na
zachowanie wygenerowanych wcześniej plików dzięki czemu ta strona nie będzie się tak
długo ładować jak bez tych właśnie plików wygenerowanych.
Przechodzimy teraz do przeglądarki do strony Display.
Mod indeks.
Moduł który wcześniej pokazywał że
właśnie dołącza tą stronę pojawił się nasz wyjątek test Messenger.
Widzimy tutaj mamy wszystkie informacje potrzebne do
zbudowania w jakim miejscu się znajduje ten problem
następnie przejdziemy jeszcze raz to edytor kodu
usunie ten wyjątek i Przejdziemy teraz do pliku z lewej strony indeksu.
Z racji że mamy już skonfigurować odpowiadanie co do schematu pliku XML.
Będzie ciężko tutaj coś zepsuć ponieważ
edytor kodu podpowiada nam co jest dostępne.
Natomiast na potrzeby przykładu zepsuje np.
tak młody.
Przejdziemy teraz jeszcze do konsoli wyczyścić cóż.
Z tego względu że dokonaliśmy zmian w Jałcie konieczne jest odświeżenie Kesha i
dopiero teraz weźmy sobie na stronę PO odświeżenie i ładowaniu strony.
Magazyn co zwróciło nam błąd że coś jest nie tak w pliku XML a
mianowicie że element nie jest rozumiany przez schemat XML.
Dlatego też widzimy ten błąd.
Weźmy teraz do folderu
do folderu głównego projektu Storage Web jest taki folder jak generator
w tym folderze następuje znajdują się klasyk o których
wcześniej wspomniałem że automatycznie komponuje w tym trybie.
My nie otrzymaliśmy żadnej komendy natomiast przy wejściu na stronę przy
pierwszym wejściu na stronę naszego sklepu internetowego agentów wykrył że potrzebuje
wygenerować na przykład Klasę proxy dla modułu Amazon KOD.
Jest to generowane jak już wspomniałem automatycznie.
Są tu też inne klasy i czasami pojawia się
taka sytuacja że konieczne jest wyciszenie tego katalogu ponieważ zmienił się
konstruktor Naszej Klasy i zależności się nie pokrywając wygenerowane klasą.
Zobaczymy to na przykładzie w późniejszych
lekcjach ponieważ często pojawi się taka sytuacja właśnie odświeżenia tego
usunięcia tych klas i wygenerowania ich na nowo.
Dodatkowo wejdziemy jeszcze raz do pliku.
Elliot cofniemy tę zmianę i
wspomnę tutaj że jest to taki skrypt przykładowy Ripley moc.
Jest ten plik znajduje się w folderze gdzie jest moc.
Tak naprawdę wyświetla tylko i wyłącznie do konsoli że jest załadowany.
Co ważne jest to plik statyczny.
Dlatego też Przejdziemy teraz do głównego folderu Storm Web.
Następnie do folderu PAP statek
front opowiem później co to jest Admin HTML oraz w skrócie są to strefy w których
działa to z racji że jesteśmy na kontynencie tzw.
sklepu internetowego dlatego też wchodzimy do folderu front.
Następnie ma to Lumia i Blank są to motywy o których też będzie później.
Natomiast teraz wejdziemy do folderu Lumia.
Wersji językowej PR i tutaj można zauważyć że znajduje się taki moduł
folder Web Display moc w tym module w tym katalogu tak naprawdę są wszystkie
pliki statyczne które są zawarte w module moc i widzimy że jest taki plik jak moc.
Co ważne i strzałka wskazuje na to że nie jest to zwykły plik tylko jest to link
i ten silnik wskazuje na bezpośrednio plik w naszym module dzięki czemu wszystkie
zmiany dokonane w pliku w module przejdziemy jeszcze raz do niego.
Wszystkie zmiany wykonane w tym pliku bezpośrednio będą odwzorowane w tym linku
dzięki czemu po otworzeniu po otworzeniu sklepu internetowego możemy
tutaj sobie nawet sprawdzić czy dodamy wartość test.
I otworzymy stronę.
Warto zanim otworzymy stronę włączyć
konsolę i następnie w aplikacji przepraszam w.
Network włączyć opcję tzw.
cash dzięki czemu wymusza to na przeglądarce za ładowanie plików z
systemu plików a nie z kieszeni przejdziemy do zakładki Console i pojawiła
się opcja James jest tez czyli bezpośrednio po zmianie tego pliku.
Mamy.
Dostęp do najnowszych zmian na koniec
omawiania trybu deweloperskiego przejdziemy do panelu administratora.
Jest on dostępny pod adresem Store Edu Web admin.
Jako Dane dostępowe piszemy admin oraz admin.
1 2 3 są to dane podane podczas instalacji.
Może to z racji że jest to pierwsze nasze wejście na admin czyli do pana
administracyjnego chwilkę trzeba poczekać aż wszystko zostanie wygenerowane.
Poza ładowaniu strony pokazuje się nam panel administratora.
Mamy tu już jakieś dostępne informacje o raportach.
Z racji że mamy zainstalowane sample data
przejdźmy do zakładki system przepraszam Storm konfigurację.
W tym miejscu znajduje się konfiguracja sklepu.
Mamy tutaj do wyboru opcje odnośnie nazwy naszego sklepu adresów URL
województw w kraju w języku czy też metod płatności i metod dostaw czyli wszystkie
konfiguracje znajdują się właśnie w tym miejscu.
Co ważne i co jest dostępne w trybie deweloperskim jest zakładka Advanced oraz
developer w tej zakładce możemy włączać specjalne tryby w jakich operuje to czy
też ustawiać w jaki sposób jest wykonywana kompilacja plików less.
Dla przykładu można tutaj wymienić opcję serwer klęską pleśń na klient serwer
mamy też do wyboru ograniczenia dostępu do sklepu czy też opcję pakowania.
Można tylko i wyłącznie tę opcję zmieniać
w trybie deweloperskim w trybie produkcyjnym ta strona się nie wyświetla.
Mówimy sobie jeszcze tryb produkcyjny.
Dla przykładu konieczne będzie zmienianie ustawienia trybu
deweloperskiego na produkcyjne zrobimy to za pomocą metody Monte.
SEC. Jako argument podajemy.
Tryb który chcemy zmienić w tym przypadku
tryb produkcyjny możemy zauważyć że pierwszą akcją którą
wykonujemy agenta jest włączenie trybu czyli trybu który wyświetla na wejściu na
stronę internetową informację o tym że trwają prace.
Możemy dla przykładu wejść teraz na stronę główną.
Po dłuższej chwili
to wyświetli nam informację że serwis jest tymczasowo niedostępny.
Jest to w domyśle strona 503.
Właśnie z racji włączenia trybu mail.
Wracając do konsoli może to wyświetli nam
informację o tym że rozpoczęła się kompilacja czyli automatycznie podczas
zmiany trybu deweloperskiego na produkcyjny.
Ma to wykonuje wszystkie wymagane akcje
czyli kompilację kodu oraz wygenerowanie plików statycznych.
Te operacje chwilę potrwają dlatego też
usłyszymy się po skończeniu generowania wszystkich wymaganych plików.
Zmiana trybu przeszła pomyślnie.
Pliki zostały wygenerowane dlatego też przejdziemy
do praktycznego przekładu czym różni się ten tryb od trybu deweloperskiego.
Przejdźmy teraz do przeglądarki na stronie głównej pojawił się właśnie strona.
Serwis jest tymczasowo niedostępny.
Otworzymy stronę aby sprawdzić czy
wszystko się poprawnie czy wszystko poprawnie działa.
Strona rządowa się o niebo szybciej z racji że już wszystko zostało wygenerowane
wcześniej i teraz przejdziemy do strony z powrotem index czyli stron dodanych przez
nasz moduł tak wygląda strona działająca wszystko poprawnie się wyświetla.
Przejdźmy teraz do edytora kodu i z
powrotem cofniemy do dodanie wyjątku z wiadomością message.
Cofniemy się z powrotem do przeglądarki i otworzymy stronę.
Jak widać zniknął napis moc.
Natomiast cała strona działa w poprzednim
trybie został wrzucony wyjątek i nic się nie wyświetli.
Oprócz błędu w tym przypadku
wszystkie błędy są pomijane przez system nie wyświetlane użytkownikowi.
Dlatego też aby sprawdzić co jest nie tak
konieczne jest przejście do konsoli do folderu War look wyczyścić konsolę żeby
nie było tych wszystkich informacji odnośnie kompilacji.
Przejdziemy do folderu War look.
W którym znajdują się pliki informujące o stanie systemu.
Sprawdź jakie to pliki są na ten moment są to pliki konduktor.
System otworzymy teraz plik Excel przy.
Otworzymy go za pomocą polecenia tel.
Minus N i wyświetli 200 ostatnich linii.
Mamy tu jakieś inne błędy które się pojawiły podczas mojej pracy nad kursem.
Natomiast ostatnie błędy wskazują na
wyjątek który powstał podczas pracy z plikiem moc.
Mamy ścieżkę do tego pliku oraz kod naszego wyjątku.
Na koniec zostawiłem przydatną informację
dotyczącą zarządzania statusem w przypadku trybu produkcyjnego.
Możliwe jest też wymienienie tylko i
wyłącznie statusu danego czy to wyłącznie w konsoli.
Przejdźmy z powrotem do głównego katalogu i wykonujemy to.
S.
Jak już wspomniałem wcześniej też w poprzednich lekcjach wyłącza się pewne
statuty aby sprawdzić jak działa ta metoda za pomocą metody.
Najbliższy.
Możemy zmieniać ten status danych ucieszy natomiast nie możemy tego robić z poziomu
panelu administracyjnego jest to tam wyłączone.
Natomiast w trybie deweloperskim jak najbardziej możemy wykorzystać
konfigurację w panelu administracyjnym i zmieniać się bezpośrednio w tamtym.
To była dość obszerna lekcja.
Udało nam się porównać oba tryby
zaznajomić się z Prusami jakimi sami tych trybów.
Bardzo ważne jest to abyś przed następnym rozdziałem zmienił z powrotem tryb na
deweloperski abyśmy mogli bez żadnych przeszkód i z wszystkimi korzyściami
wynikającymi z tego typu developer i uczyć się odnośnie agenta.