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.
Wiemy już jak wygląda struktura projektu.
Wiemy też jak wygląda struktura pojedynczego modułu
więc teraz zajmiemy się stworzeniem własnego modułu Przechodzimy więc do
edytora kodu i od razu wchodzimy do folderu UP KOD.
Wspominałem wcześniej że na pierwszym
rdzeniu znajduje się nazwa Fedora czyli firmy która tworzy dany moduł.
W tym przypadku stworzymy od zera właśnie
ten moduł i zaczniemy od utworzenia katalogu.
W tym przypadku będzie to etap
w kolejnym zagrożeniu znajduje się nazwa danego modułu.
Zazwyczaj opisuje ona w dwóch czy trzech
słowach jaką funkcjonalność dodaje dany moduł.
Dla przykładu nazwiemy go po prostu egzemplarz Project.
Mając już przygotowane te foldery zajmiemy się dodaniem pliku UTC.
Moduł XML czyli przejdziemy jeszcze
stworzymy kolejny folder TC w tym folderze jak wspominałem wcześniej
znajdują się konfiguracje rozszerzające czy modyfikując system.
Może to i pierwszym plikiem jaki stworzymy
w tym module będzie plik moduł XML literówki mogą.
XML skupi teraz zawartość i wklej je aby tego nie przepisywać ręcznie.
W tym pliku informujemy
o wersji naszego modułu oraz w zależności do innych modułów.
Rozpoczynamy tutaj od dodania a
następnie nazwy i w nazwie podajemy nazwę tego modułu czyli Web.
Egzemplarz.
Projekt.
Sample Project kolejnym takim który możemy tu dodać set
Version czyli w tym przypadku jest to wersja 0 0 1.
Na podstawie tej wersji
to będzie obradowała właśnie ten moduł czyli jeśli powstanie jakaś zmiana np.
dodamy migrację jakiejś tabeli czy
migracja bazy danych to za pomocą zmienionej wersji
rozpozna że coś się zmieniło i wykona aktualizację bazy danych.
Następnie możemy też ustawić jakie są zależności dla tego modułu.
Aby to zrobić musimy dodać
zakończyć tak moduł i następnie wykorzystać tak więc
tutaj podajemy znowu tak moduł oraz nazwę modułu który
jest zależny dla naszego modułu Web Project.
Dla przykładu możemy zrobić aby nasz moduł
Edi Project był zależny od to katalog o kolejności ładowania modułów
oraz dlaczego warto dodawać właśnie zależności w tym pliku.
Opowiem w późniejszej lekcji.
Natomiast na tę chwilę możemy usunąć ten
tekst zostawimy sobie tylko i wyłącznie informację o tym module oraz jego wersji.
Kolejnym plikiem jaki konieczny jest aby poprawnie zarejestrować ten moduł w
systemie jest przejście do folderu głównego ECS.
Projekt naszego modułu i dodanie pliku Register PHP.
Skupuje znowu zawartość tego pliku aby nie przepisywać tego od zera w tym pliku
możemy zauważyć że wykorzystywana jest klasa komponent Register oraz metoda
Register do rejestracji modułu o wskazanej nazwie.
W tym przypadku oczywiście musimy zmienić
nazwę ponieważ nasz moduł nazywa się Web ex Project dlatego też zmieniamy to nazwę.
I kolejnym argumentem dla metody Register jest ścieżka do właśnie tego pliku dzięki
czemu to będzie wiedziało gdzie dany folder pod jaką lokalizacją się znajduje.
Kolejnym plikiem jest plik komputer Jackson.
Ten plik co prawda nie jest wymagany
podczas tworzenia modułu oraz rejestracji jego w systemie.
Natomiast jeśli tworzymy moduły które są
wykorzystywane nie tylko w jednym projekcie lub też w innych projektach i
chcemy aby były załączone za pomocą menadżera komputer
to musimy stworzyć ten plik ponieważ nie są w zależności od innych modułów i
jeśli tego pliku nie będzie to komputer nie będzie mógł go załadować poprawnie.
Dodajemy więc plik kompozytor Jackson
a następnie kopie znowu zawartość do tego pliku w tym pliku znajdują się ogólne
informacje o module które są wykorzystywane przez komputer
możemy tutaj znaleźć informacje o wersji opisie czy też licencjach na dany moduł.
Ważne jest jeśli chcemy aby ten moduł był udostępniany przez kompozytora.
Nazwać go poprawnie tak abyśmy mogli wykorzystać np.
polecenie Computer Recovery oraz nazwę
modułu w tym przypadku będzie to EP ek sample Project.
Aby system poprawnie załadować ten moduł
ważne jest też wymienienie w sekcji Out Loud wartości dla PSR 4.
Jest to wartość która wskazuje na początek pasa od którego rozpoczynają się wszystkie
nasze klasy w tym module nazwiemy to egzemplarz.
Projekt wspomnę że ten plik jest opcjonalny.
Czyli jeśli tego pliku nie stworzymy to i
tak ma to poprawnie załatwię i będzie miało później ten moduł.
Aby zainstalować teraz ten moduł konieczne jest przejście do konsoli.
Niewykonanie polecenia bin Ladena to etap.
Upgrade dodamy też opcję chip generator
aby wygenerowane wcześniej pliki nam się nie usunęły.
Komenda Stop zakończyła działanie a my
możemy zobaczyć na końcu że została wyrzucona informacja o module Web Project.
Aby sprawdzić czy wszystko jeszcze poprawnie się zainstalował go z powrotem
wrócimy do naszego edytora kodu do folderu będziemy teraz to folder UP HTC
konflikt wyszukane nasz moduł Web ex Project.
Jeśli on się tutaj znajduje jest wartością 1 to znaczy że został on poprawnie.
Wygenerowane i skonfigurować przez to
możemy też wejść do bazy danych skonfigurować sobie wcześniej połączenie
dlatego też wejdę teraz przez pierwszą historię do bazy danych.
Możesz też sobie skonfigurować w tej zakładce jeśli korzystasz z Storm a jeśli
nie to zalecam wykorzystać swój ulubiony program do obsługi bazy danych.
Jak już wejdziemy do swojego programu konieczne jest znalezienie tabeli etap.
Moduł.
Co wam otworzy i następnie tutaj jest lista zainstalowanych modułów.
Możemy zauważyć że znajduje się tutaj informacja o module
Project z naszą wersją która została skorygowana w pliku UTC moduł XML.
Na teraz to już wszystko.
W kolejnej lekcji opowiem o kolejności ładowania modułów.
module.xml · 1 min
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Vendor_Module"/>
</config>registration.php · 4 min
<?php
declare(strict_types=1);
use Magento\Framework\Component\ComponentRegistrar;
ComponentRegistrar::register(ComponentRegistrar::MODULE, 'Vendor_Module', __DIR__);composer.json · 5 min
{
"name": "vendor/module",
"version": "1.0.0",
"description": "N/A",
"type": "magento2-module",
"require": {
"magento/framework": "*"
},
"license": [
"Open Software License (OSL)"
],
"autoload": {
"files": [
"registration.php"
],
"psr-4": {
"Vendor\\Module\\": ""
}
}
}