Laravel 5.1 Artisan 命令的正确语法
Proper syntax for Laravel 5.1 Artisan Command
我正在尝试为 Laravel 5.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 Command
{
protected $signature = 'zelda';
protected $description = 'Command description.';
public function __construct() {
parent::__construct();
}
public function handle() {}
}
3) composer.json 中的自动加载器如下所示
"autoload": {
"classmap": [
"database",
"app/Console/Commands"
],
"psr-4": {
"App\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
]
},
4) 然后我 运行 php artisan list
没有塞尔达
我在这里错过了什么?
你就快完成了!您已经完成了 创建 命令 class 所需的所有操作。但是,您仍然需要告诉您的应用程序它应该 使用 这个命令 class。
也就是说,在您的 CLI 应用程序内核文件(相对于您的 Web 应用程序的内核)文件中,您应该看到以下内容
#File: app/Console/Kernel.php
class Kernel extends ConsoleKernel
{
//...
protected $commands = [
\App\Console\Commands\Inspire::class,
];
//...
}
创建命令后(手动或通过 make:console
,您仍然需要添加新命令 class(完整的 PHP class 名称)到内核文件的 $commands
数组。
这个
protected $commands = [
\App\Console\Commands\Inspire::class,
'\App\Console\Commands\Zelda',
];
或这个
protected $commands = [
\App\Console\Commands\Inspire::class,
\App\Console\Commands\Zelda::class,
];
应该让你到达你需要去的地方(我不确定为什么 Laravel 5.1 的核心代码在这里使用魔术常数 class
)
我正在尝试为 Laravel 5.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 Command
{
protected $signature = 'zelda';
protected $description = 'Command description.';
public function __construct() {
parent::__construct();
}
public function handle() {}
}
3) composer.json 中的自动加载器如下所示
"autoload": {
"classmap": [
"database",
"app/Console/Commands"
],
"psr-4": {
"App\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
]
},
4) 然后我 运行 php artisan list
没有塞尔达
我在这里错过了什么?
你就快完成了!您已经完成了 创建 命令 class 所需的所有操作。但是,您仍然需要告诉您的应用程序它应该 使用 这个命令 class。
也就是说,在您的 CLI 应用程序内核文件(相对于您的 Web 应用程序的内核)文件中,您应该看到以下内容
#File: app/Console/Kernel.php
class Kernel extends ConsoleKernel
{
//...
protected $commands = [
\App\Console\Commands\Inspire::class,
];
//...
}
创建命令后(手动或通过 make:console
,您仍然需要添加新命令 class(完整的 PHP class 名称)到内核文件的 $commands
数组。
这个
protected $commands = [
\App\Console\Commands\Inspire::class,
'\App\Console\Commands\Zelda',
];
或这个
protected $commands = [
\App\Console\Commands\Inspire::class,
\App\Console\Commands\Zelda::class,
];
应该让你到达你需要去的地方(我不确定为什么 Laravel 5.1 的核心代码在这里使用魔术常数 class
)