我想创建命令order:process
和order:lock
。到目前为止,我已经发现我需要运行php artisan command:make process --namespace=order
来创建order:process类文件。然后我需要将app / commands / process.php中的$ name值设置为'order:process'。这就是我被困住的地方。
我想我需要在app / start / artisan.php中添加一些东西以使命令可用,但我无法弄清楚是什么。我已经尝试了Artisan::add(new order\process);
和Artisan::add(new process);
,但这些都不起作用。我需要做什么才能从命令行运行我的新命令?我知道问题与使用命名空间有关,但我找不到任何关于使用命名空间的artisan命令的文档。
答案 0 :(得分:2)
对于laravel 5.0
php artisan make:console Foo --command=foo:do
编辑位于app / Console / Commands / Foo.php
中的命令然后通过向app / Console / Kernel.php添加条目来注册您的命令
protected $commands = [
'Cloudlite\Console\Commands\Inspire',
'Cloudlite\Console\Commands\EmailParser',
'Cloudlite\Console\Commands\Foo',
];
您现在可以像以下一样运行(示例默认选项,编辑Foo.php)
php artisan foo:do example=1
答案 1 :(得分:1)
首先使用 artisan 命令
创建它们php artisan command:make OrderProcessCommand --command=order:process
php artisan command:make OrderLockCommand --command=order:lock
修改app/commands
然后在app/start/artisan.php
Artisan::add(new OrderProcessCommand);
Artisan::add(new OrderLockCommand);
答案 2 :(得分:0)
我仍然不知道如何使用命名空间,但我已经想出了这一部分。
答案是,使用php artisan command:make orderProcessCommand
,并将其注册到Artisan::add(new orderProcessCommand);
。在orderProcessCommand.php中,将$ name设置为order:process
。 Artisan将按照注册命令的指示读取该类,但可以按$ name字段中的描述调用它。