Я пытаюсь понять, как правильно использовать или вставлять зависимости в команды интерфейса командной строки Magento 2. Из https: // devdocs .magento.com / guides / v2.4 / extension-dev-guide / cli-cmds / cli-howto.html:
Ваша команда может использовать диспетчер объектов и функции внедрения зависимостей Magento; например, он может использовать внедрение зависимостей конструктора.
Диспетчер объектов (Magento\Framework\App\ObjectManager
) достаточно прост, хотя другие части документа по какой-то причине не рекомендуют его использовать. Как «внедрение зависимостей конструктора» работает с командами CLI? Конструктор Symfony\Component\Console\Command\Command
просто принимает строку, так что это не имеет смысла.
2 ответа
Я обнаружил, что зависимости конструктора были кэшированы в каталоге generated
(M2.4.1), который необходимо было вручную удалить для правильной работы DI. В остальном, следуя https : //devdocs.magento.com/guides/v2.4/extension-dev-guide/cli-cmds/cli-howto.html работает.
Да, вы можете использовать внедрение зависимостей в конструктор команд CLI.
Вы можете проверить некоторые собственные интерфейсы командной строки Magento.
Пример php bin/magento store:list
, вы можете проверить на Magento\Store\Console\Command\StoreListCommand
. Они внедрили storeManager в конструктор, чтобы использовать его как обычно
Похожие вопросы
Новые вопросы
magento
Общие вопросы по Magento (например, администрирование) можно задать на https://magento.stackexchange.com Magento - это платформа электронной коммерции, написанная на PHP. Вопросы должны быть связаны с написанием кода для Magento.