Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.1 Artisan命令的正确语法_Php_Laravel 5.1_Laravel Artisan - Fatal编程技术网

Php Laravel 5.1 Artisan命令的正确语法

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

我正在尝试为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 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,
];