Composer Require then Inject service into Laravel App without leaving laravel 命令行

Composer Require then Inject service into Laravel App without leaving laravel command line

所以我正在执行 Laravel artisan 命令。在该命令中,我 运行 'composer require' 用于一个包。我正在尝试找到一种方法来使用我需要的那个包而不离开我所在的当前命令。

我想暂时将命名空间添加到 Laravel,就像您自动加载文件时那样。

所以我的第一个问题是如何在 Artisan 命令中使用下面的代码?由于无法在 artisan 命令中自动访问应用程序。

include_once __DIR__ .'/../vendor/....';

$this->app->make('My\Namespace');

我的第二个问题。假设我让上面的代码在 Artisan 命令中正常工作,那会不稳定吗?我应该在作曲家要求之后再制作第二个 artisan 命令吗?

如有任何建议,我们将不胜感激。

要回答您的第一个问题,composer 有自己的 API 可以手动执行它在后台执行的操作。

您可以要求一个包,然后使用其供应商路径在类映射 API 中添加新的 Class fo 用法,并在您的命令中转储自动加载。

其次,我建议设置 2 个命令,每个命令只负责完成一项任务。首先是安装和处理安装错误,其次是使用它。

最后但重要的是,这是一种要求包的非常规方式。因为大多数包只需要一次,然后可能 updated/removed 在项目中。所以你可以手动安装一次包然后运行命令来消除使用命令安装包的烦恼。