W Magento 2 swoje moduły tworzymy w katalogu /app/code/.
Budowę modułu można zacząć od utworzenia hierarchii katalogów wg wzoru:
/app/code/nazwaPrzestrzeniNazw/
/app/code/nazwaPrzestrzeniNazw/nazwaModulu/
/app/code/nazwaPrzestrzeniNazw/nazwaModulu/etc/
Foldery nazwaPrzestrzeniNazw i nazwaModulu są wykorzystywane w klasach oraz plikach xml jako nazwy definiujące dany moduł i mają postać: nazwaPrzestrzeniNazw_nazwaModulu. Jak widać, nazwy katalogów i nazwa przestrzeni modułu muszą być identyczne.
Przykład prostego modułu Test_Example:
1. Tworzymy strukturę katalogów:
2. W katalogu /etc/ tworzymy plik module.xml:
1 2 3 4 |
<?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="Test_Example" setup_version="1.0.0" /> </config> |
gdzie:
- name=”Test_Example” – nazwa modułu / przestrzeni nazw
- setup_version=”1.0.0″ – wersja modułu
3. Tworzymy plik registration.php (w katalogu /app/code/Test/Example/), w którym rejestrujemy nasz moduł:
1 2 3 4 5 6 7 8 |
<?php /* app/code/Test/Example/registration.php */ \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Test_Example', __DIR__ ); |
4. W konsoli (ssh) zapodajemy procedurę, która utworzy moduł:
1 |
php bin/magento setup:upgrade |
5. Czyścimy cache:
1 2 |
php bin/magento cache:clean php bin/magento cache:flush |
Aby sprawdzić, czy moduł jest poprawnie dodany możemy skorzystać z polecenia:
1 |
php bin/magento module:status |
lub logując się do panelu Magento.
Z menu wybieramy: SYSTEM -> Kreator konfiguracji sieci Web -> Moduł Menadżer.
Otrzymamy w ten sposób listę zainstalowanych modułów. Z tego poziomu można włączyć lub wyłączyć dany moduł. Można zrobić to również w konsoli za pomocą poleceń:
1 2 |
php bin/magento module:enable Test_Example php bin/magento module:disable Test_Example |
Magento dodaje wpis z nazwą nowego modułu w pliku konfiguracyjnym /app/etc/config.php oraz w bazie danych – w tabeli setup_module.
Zobacz kolejny artykuł: „TWORZENIE NIESTANDARDOWEJ PODSTRONY Z WŁASNYM WIDOKIEM, KONTROLEREM I ROUTINGIEM”