Итак, я делаю команду ремесленников Laravel. В этой команде я запускаю ‘composer require’ для пакета. Я пытаюсь найти способ использовать тот пакет, который мне нужен, не выходя из текущей команды, в которой я нахожусь.
Я думал о временном добавлении Пространства имен в Laravel, как это происходит при автоматической загрузке файлов.
Итак, мой первый вопрос: как мне использовать этот код ниже внутри Artisan Command? Поскольку приложение не доступно автоматически внутри команды ремесленника.
include_once __DIR__ .'/../vendor/....';
$this->app->make('My\Namespace');
Мой второй вопрос Предполагая, что приведенный выше код работает должным образом внутри команды Artisan, это нестабильно? Должен ли я просто сделать вторую команду ремесленника после того, как композитор потребует?
Любой совет будет принят во внимание.
Чтобы ответить на ваш первый вопрос, у композитора есть свой API делать вещи вручную, что делает под капотом.
Вы можете запросить пакет, затем добавить новое использование Class fo в API классов, используя путь поставщика, и сбросить автозагрузки в вашей команде.
Во-вторых, я предлагаю назначить 2 команды, каждая из которых отвечает за выполнение только одной задачи. Первый для установки и обработки ошибок установки, второй для его использования.
И последнее, но главное: это нетрадиционный способ требовать пакет. Потому что в основном пакеты требуются один раз и затем могут быть обновлены / удалены в проекте. Таким образом, вы можете установить пакет вручную один раз, а затем запустить команду, чтобы избежать беспокойства при установке пакета с помощью команды.
Других решений пока нет …