Php Laravel 5.1 Artisan命令的正确语法
我正在尝试为Laravel5.1制作一个artisan命令,我甚至无法让最基本的版本正常工作 采取的步骤 1) php artisan make:console Zelda--command=Zelda 2) 在Php Laravel 5.1 Artisan命令的正确语法,php,laravel-5.1,laravel-artisan,Php,Laravel 5.1,Laravel Artisan,我正在尝试为Laravel5.1制作一个artisan命令,我甚至无法让最基本的版本正常工作 采取的步骤 1) php artisan make:console Zelda--command=Zelda 2) 在app/Console/Command/Zelda.php中创建的文件,包含以下内容 <?php namespace App\Console\Commands; use Illuminate\Console\Command; class Zelda extends Comman
app/Console/Command/Zelda.php
中创建的文件,包含以下内容
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class Zelda extends Command
{
protected $signature = 'zelda';
protected $description = 'Command description.';
public function __construct() {
parent::__construct();
}
public function handle() {}
}
4) 然后我运行php artisan list
,没有zelda
我在这里错过了什么?你就快到了!您已经完成了创建命令类所需的所有操作。但是,您仍然需要告诉应用程序它应该使用该命令类 也就是说,在CLI应用程序内核文件(与web应用程序内核相反)中,您应该看到以下内容
#File: app/Console/Kernel.php
class Kernel extends ConsoleKernel
{
//...
protected $commands = [
\App\Console\Commands\Inspire::class,
];
//...
}
创建命令后(手动或通过make:console
),仍然需要将新的命令类(完整的PHP类名)添加到内核文件的$commands
数组中
这个
还是这个
protected $commands = [
\App\Console\Commands\Inspire::class,
\App\Console\Commands\Zelda::class,
];
应该可以让您达到您需要的位置(我不确定为什么Laravel 5.1的核心代码使用魔法常量
类在这里)还有…我做了一个composer自动加载转储--优化
protected $commands = [
\App\Console\Commands\Inspire::class,
'\App\Console\Commands\Zelda',
];
protected $commands = [
\App\Console\Commands\Inspire::class,
\App\Console\Commands\Zelda::class,
];