【发布时间】:2019-01-14 09:55:10
【问题描述】:
当您在命令行中使用php artisan 时,您将获得所有命令的列表。有没有机会以编程方式获取所有 Laravel 工匠命令?例如,我需要它在界面的选择字段中使用它。
【问题讨论】:
标签: php laravel laravel-artisan
当您在命令行中使用php artisan 时,您将获得所有命令的列表。有没有机会以编程方式获取所有 Laravel 工匠命令?例如,我需要它在界面的选择字段中使用它。
【问题讨论】:
标签: php laravel laravel-artisan
获取所有命令对象:
\Artisan::all()
获取所有命令名称:
array_keys(\Artisan::all())
【讨论】:
use Illuminate\Contracts\Console\Kernel;
...
$commands = resolve(Kernel::class)->all();
【讨论】:
使用 shell-exec 命令。 http://php.net/manual/en/function.shell-exec.php
$output = shell_exec('php artisan');
echo $output;
【讨论】:
如果我对查询的理解正确,您可以使用 CLI(例如 debian 中的 bash)来:
&& 用于单个调用 - 每个后续调用将在上一次表演之后进行,例如:
php artisan migrate:fresh && php artisan fixtures:up && php artisan db:seed && php artisan serv
在 .bash_profile 中输入的别名
alias migrate = "php artisan migrate"
并在 Laravel 项目中使用命令 migrate。
【讨论】:
您可以像这样将它们放在您的路线中:
Route::get('/foo', function()
{
$exitCode = Artisan::call('command:name', ['--option' => 'foo']);
//
});
https://laravel.com/docs/5.0/artisan#calling-commands-outside-of-cli
【讨论】: