use*_*781 5 php laravel laravel-4
我开发了一些自定义工匠命令,以便更容易地使用我的包.是否可以将artisan命令包含在包中以便于部署?如果可以,怎么样?
谢谢.
Ant*_*iro 13
在包结构中设置命令:
<?php namespace App\Artisan;
use Illuminate\Console\Command;
class MyCommand extends Command {
protected $name = 'mypackage:mycommand';
protected $description = 'Nice description of my command.';
public function fire()
{
/// do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在您的包裹服务提供商处:
<?php namespace App;
use Illuminate\Support\ServiceProvider;
use App\Artisan\MyCommand;
class MyServiceProvider extends ServiceProvider {
public function register()
{
$this->registerMyCommand();
$this->commands('mycommand');
}
private function registerMyCommand()
{
$this->app['mycommand'] = $this->app->share(function($app)
{
return new MyCommand;
});
}
}
Run Code Online (Sandbox Code Playgroud)
诀窍是在线
$this->commands('mycommand');
Run Code Online (Sandbox Code Playgroud)
这告诉Laravel将您的命令添加到可用的工匠列表中.