Я начал внедрять новый модуль в Magento2, и с тех пор у меня появилось больше вопросов, чем ответов.Magento2: Разработка пользовательских модулей и DI
Я успешно создал свой собственный модуль и, похоже, работает, но не совсем. Я использую свои собственные контроллеры и хочу реализовать свой собственный макет, с некоторыми внешними (не локальными) файлами JS/CSS.
Что я в первую очередь застрял с , добавив некоторые внешние JS/CSS на страницу. Мне казалось, что это не так просто, как я думал. Я читал много статей о том, как это можно сделать, но никто из них не работал для меня. Я не хочу изменять какую-либо тему, я просто хочу использовать свою собственную страницу (, возможно, без тематики).
Кроме того, я создал еще одну акцию (же, как работа HelloWorld
пример) в моем модуле app/code/MyModule/Product/Controller/Api/Index.php
, который проходит правильный класс и т.д. и т.п., но опять же - не работает. То, что я получал рядом ошибка:
Recoverable Error: Argument 1 passed to ...\Api\AbstractApiAction::__construct() must be an instance of Magento\Framework\App\Action\Context, instance of Magento\Framework\ObjectManager\ObjectManager given, called in vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 97 and defined in app/code/.../Api/AbstractApiAction.php on line 24
Каково было мое удивление, когда я обнаружил, что он не будет работать, если я не перекомпилировать DI контейнер с bin/magento setup:di:compile
. Я думаю, что не стоит говорить, что этот процесс занимает немного времени. И когда я создаю новое действие, я должен пойти и сделать setup:di:compile
, чтобы иметь возможность развиваться дальше.
Я полностью отключил кеширование в области администратора.
Теперь я хочу, чтобы очистить несколько вопросов:
- Как я могу добавить внешние JS/CSS файлы на пользовательской странице (заказного контроллера).
- Есть ли способ развития чего-л. без постоянной перекомпиляции контейнера DI? Или я чего-то не хватает?
- В соответствии с вопросом выше, что на самом деле
Developer mode
означает в Magento2, я помню, что он отключает кеширование и т. Д., Но кодовая база не автогенерируется или я пропускаю что-л. еще раз?