Приклад модуля для Magento 2
На тижні помацав приклад створення модуля для Magento 2. У ході промацування намагався сформувати робоче оточення за аналогією з оточенням для розробки модулів під Magento 1, що виробилося у нас на даний момент.
Корисні посилання
Сам модуль
Посилання на проект на github'і: sample_mage2_module

Ми розміщуємо код самого модуля у підкаталозі ./src.
Розгортання робочого оточення для розробки модуля робимо в каталозі ./work/.
У каталозі./work/cfg/знаходяться вихідники скрипта(-ів) для розгортання девелоперської версії Magento-додатка.
файл. директорію із заміною в шаблонах placeholder'ів на їх реальні значення для даного екземпляра додатка. Можна робити це і вручну, але ми використовуємо такий плагін. У цьому прикладі нам потрібно зі шаблону ./work/cfg/bin/deploy/post_install.sh створити лише один shell-скрипт (./work/bin/deploy/post_install.sh), який і буде піднімати БД для Magento-програми після відпрацювання"composer install".
Файл ./work/.gitignore належить до каталогу./work/(робоче оточення розробки модуля).
Файл ./work/composer.json — інструкції з розгортання робочого середовища через Composer.
Файл ./.gitignore відноситься до всього проекту в цілому (за винятком підкаталогу./work.).
Файл ./composer.json — інструкції зрозгортання нашого Magento2 модуля (саме самого модуля, а не робочого оточення для його розробки).
Підготовка до розгортання
Як створювати базу даних і налаштовувати web-сервер і PHP я не описую — для Magento 2 це робиться так само, як і для Magento 1. Важливо, що після налаштування системного оточення у вас повинні бути параметри роботи з БД і URL, під яким буде працювати ваш web-додаток.
Створення конфігураційного файлу з параметрами, специфічними для вашого екземпляра програми (робота з БД, URL тощо): ```bash $ cp templates.json.init templates.json $ nano templates .json "vars": "LOCAL_ROOT": "/home/magento/instance/sample_mage2_module", "CFG_ADMIN_FIRSTNAME": "Store", "CFG_ADMIN_LASTNAME": "Admin", " CFG_ADMIN_EMAIL": "[email protected]", "CFG_ADMIN_USERNAME": "admin", "CFG_ADMIN_PASSWORD": "eUvE7Yid057Cqtq5CkA8", "CFG_BASE_URL": "http:// .com/", "CFG_BACKEND_FRONTNAME": "admin", "CFG_DB_HOST": "localhost", "CFG_DB_NAME": "magento2", "CFG_DB_USER": "magento2", "CFG_DB_PASSWORD": "JvPESKVSjXvZDrGk2gBe", "CFG_LANGUAGE": "en_US", "CFG_CURRENCY": "USD", "CFG_TIMEZONE": "UTC", <"0", "CFG_USE_SECURE": "0", "CFG_USE_SECURE_ADMIN": "0", "CFG_ADMI_USE_SECURITY_KEY": "0", "CFG_SESSION_SAVE": "db" > >
Точки доступу до web-інтерфейсів:
Розгорнутий Magento-додаток (див. каталог./work/htdocs/) із залінкованими на нього файлами нашого модуля (з каталогу./work/vendor/flancer32/sample_mage2_module/src/) . Тому при зміні файлів нашого модуля в розгорнутому Magento 2 додатку за фактом змінюються файли в каталозі./vendor/., які знаходяться під контролем версій. Залишаєтьсяналаштувати свій IDE для роботи з цим репозиторієм:


Додатки
Кореневий каталог./work/htdocs/для розгортання Magento2-програми створюється в ./work/composer.json:```bash "scripts": "pre-install-cmd": [ "# Create root directory for development Magento instance.", "mkdir -p htdocs" ] > >
в каталозі./workпризводить до того, що жадана sample data спочатку довго закачується (особливо media), потім довго встановлюється, потім все рухається, і потрібно починати спочатку, але без sample data. Можливо, коли помилки виправлять, можна буде заливати і sample data, але поки що так.
А у нас тут можна отримати грант на тестовий період Яндекс.Хмари. Варто лише у полі «секретний пароль» запровадити «Хабр»