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.
Na potrzeby tej lekcji została dodana nowa akcja sejf dzięki której za symuluje
działanie formularza dodawania nowej marki.
Tak więc aby dodać nową markę do bazy danych konieczne będzie utworzenie
najpierw nowego obiektu modelu klasy Brand.
Dlatego też aby to stworzyć konieczne będzie w konstruktora podanie zależności
do brand Factory która na razie nie istnieje.
Natomiast to jeśli zauważy że potrzebna
jest klasa która zawiera sufit faktury automatycznie zostanie wygenerowane a
specjalna klasa w folderze generator dzięki czemu będziemy mogli za pomocą
Brand Factory stworzyć nowy obiekt klasy Brand.
Dlatego też nie przedłużając dodajemy nowy atrybut do klasy C czyli Brand Factory.
I w metodzie egzekucji zatrzymujemy działanie formularza czyli najpierw
stworzymy nowy obiekt za pomocą obiektu Brand Factory.
Na razie edytor kodu nie podpowiada nam
żadnej metody ponieważ nie wie że taka w ogóle klasa będzie istniała.
Dlatego też dodamy teraz metodę Create ponieważ wiemy że taka metoda będzie
istniała jak to wygeneruje tę klasę jako rezultat tej metody.
Piszemy nowo powstały obiekt do zmiennej Brand.
Następnie aby edytor kodu wiedział że to
jest obiekt klasy Brand dodamy taką informację dzięki czemu będziemy mieli
dostęp do pewnych metod na obiekcie brand dla naszych potrzeb.
Konieczne będzie wykorzystanie metody set
data dzięki której ustalimy wartości nam oraz URL dla naszej marki.
Tak więc przygotujemy sobie najpierw nam.
Nazwiemy ją Tesla i następnie Brand Seed data URL i.
Dzięki któremu później będziemy mogli w
adresie URL dodać ładne słowo kluczowe Tesla.
Kolejnym elementem
aby zapisać model do bazy danych będzie wykorzystanie metody sejf.
Należy zauważyć że ta metoda jest
zdecydowana i tak naprawdę nie powinniśmy jej używać.
Pokazuje ją dla celów demonstracyjne natomiast później pokaże w jaki sposób
powinno się zapisywać modele do bazy danych.
Po wykonaniu metody Safe miarka zostanie zapisana do bazy danych
aby sprawdzić czy wszystko przeszło pomyślnie.
Po zapisie tej marki
zwrócimy rezultat w formie Jacksona zrobimy to za pomocą Record SEC.
Data i następnie obiekt Brandt posiada metodę GET data
która zwróci wszystkie wartości przechowywane w modelu
Przejdziemy teraz do przeglądarki i w adresie URL zmienimy Brand Index na sejf.
Okazuje się że strona nie została znaleziona dlatego konieczne będzie
przejście do konsoli i wykonanie polecenia bin to c.
Aby wyczyścić przechowują informacje o zarejestrowanych stronach.
Po wypuszczeniu Kesha wracamy do
przeglądarki i otwieramy stronę jeszcze raz.
Po stworzeniu się strony pojawił się kolejny błąd.
Aby go naprawić konieczne będzie przejście
z powrotem do edytora kodu i dodanie pełnej ścieżki dla klasy Brand Factory.
Ponieważ ona teraz nie rozpoznaje.
Jaką klasę ma tak naprawdę wygenerować.
Ponieważ pokazaliśmy że ma zostać
załączony do Naszej klasy sejf klasa Brand Factory.
Jednak może to nie rozpoznaje i nie
znajduje takiej klasy więc dodajmy pełną nazwę tej klasy.
Po wykonaniu tej operacji może to będzie wiedziało że potrzebuje wygenerować
fabrykę dla klasy Brand model Brand natomiast potwierdza nam się jeszcze w
trakcie pracy że taka kasa dalej nie istnieje i też powinniśmy
zmienić ją na pełną wartościową nazwę Brand Factory w tym momencie też
zniknęło podświetlenie dla przypisania do Factory do brand Factory.
Zanim jednak przejdziemy do przeglądarki
musimy wrócić do konsoli i wyczyścić folder RMF.
Generator.
Dzięki temu może to wygeneruje jeszcze raz
konstruktor dla klasy SUV który będzie zawierał poprawną pełną nazwę klasy Brand
Factory i po otworzeniu strony powinien się pokazać Jackson.
I dokładnie tak też się stało.
To znaczy że w bazie danych zapisał się nowy wiersz.
Dodatkowo należy zwrócić uwagę że został
wygenerowany identyfikator 1 dla marki Tesla.
Teraz przejdziemy do modelu który
wyświetla informacje o marce i następnie definiujemy pobieranie marki na podstawie
identyfikatora który znajduje się w adresie URL.
Przejdźmy więc do edytora kodu następnie do folderu mówił model Wu.
I teraz dodane na początku nowe zależności do konstruktora.
Najpierw konieczne będzie pobranie
obiektu klasy Request interface aby pobrać identyfikator z adresu URL tak
jak już robiliśmy w rozdziale o kontrolera oraz aby pobrać informacje z bazy danych
do modelu Brand konieczne też będzie wykorzystanie Brand Factory.
Oczywiście musimy podać pełną ścieżkę tak
jak robiliśmy to wcześniej czyli ePUAP Brand model Brand Factory.
Dodajemy obie zależności do atrybutów klasy VU.
I następnie w metodzie Get Brand info.
Po bierzemy model z bazy danych aby to zrobić.
Wykorzystamy Object Request oraz metodę znaną już nam z wcześniejszych lekcji jako
argument do metodyki wykorzystamy słowo kluczowe ID
identyfikator przypisany do zmiennej ID i następnie konieczne będzie stworzenie
nowego obiektu modelu brand i wykonanie metody Cloud która spowoduje za ładowanie
odpowiedniego wiersza z bazy danych na podstawie przekazanego identyfikatora.
Dlatego też wykonamy najpierw stworzenie nowego obiektu.
Następnie obiekt Brand posiada taką metodę jak lot możemy oznaczyć tor ma tę klasę
żeby można było zobaczyć że rzeczywiście taka metoda istnieje.
I tak samo jak metoda SAS tak samo metoda
LOT jest oznaczona jako represjonowany i nie powinniśmy jej używać
nie powinniśmy jej wykorzystywać ponieważ model przechowuje dane i nie powinien on
się zajmować ładowanie żadnych informacji z bazy danych.
Do tego służy Records model lub tzw.
klasy repozytorium na potrzeby tej lekcji jednak skorzystamy z metody lot i
przekażemy do niej identyfikator pobrany z adresu URL dzięki czemu będziemy mogli
wykorzystać dane pobrane z bazy danych i wyświetlić się w szablon.
Dlatego też usuń kod który nie będzie nam teraz potrzebny.
Zmienimy nam aby korzystał z obiektu Brand.
Następnie pokażemy informacje z kolumny nam która możemy zostawić i URL.
Na razie nie będzie nam potrzebne to
wystarczy aby pobrać informacje z bazy danych i je wyświetlić.
Dlatego też przejdźmy do przeglądarki i wejdziemy na adres Brand View.
Indeks.
ID 1 gdzie ID 1 wskazuje na markę Tesla.
Strona się zadawała wygląda ona dokładnie
tak samo jak wcześniej ponieważ wykorzystaliśmy słowo Tesla.
Natomiast możemy zmienić identyfikator aby sprawdzić czy pojawi się jakiś błąd czy
nie czy też nie wyświetli się żadna informacja.
Gdy zmieniliśmy identyfikator na dwa możemy zauważyć że zniknęło słowo Tesla.
Stało się tak ponieważ nie ma żadnej marki
o identyfikator 2 dlatego też została zwrócona pusta wartość.
Wróćmy jeszcze na chwilę do edytora kodu.
Bardzo ważne jest aby powiedzieć o tym że nie powinniśmy wykorzystywać modeli w
salonach czy też blokach czy też w wielu modelach ponieważ
ponieważ jeśli tak będzie to w każdym miejscu w systemie jeśli taki obiekt
będzie przekazywany będziemy mogli dokonać pewnych operacji na bazie danych
szablon nie powinien modyfikować żadnych informacji w bazie danych.
Dlatego też aby naprawić tę sytuację aby
do niej nie dochodziło konieczne będzie zaimplementowane serwis kontrakt i właśnie
serwis kontrakt dowiemy się w następnej lekcji.