我正在研究一个由多个laravel 5应用程序使用的composer包,所以我在那里有一个服务提供者,当安装在一个应用程序中时,它将好东西挂钩到laravel 5应用程序.
我知道我可以为依赖包注册服务提供者,如下所示:
$this->app->register(\Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class); $this->app->register(\EvanDarwin\JSend\Laravel\ServiceProvider::class); $this->app->register(\Prettus\Repository\Providers\RepositoryServiceProvider::class);
我知道我也可以像这样加载别名:
$loader = \Illuminate\Foundation\AliasLoader::getInstance(); $loader->alias('Excel', 'Maatwebsite\Excel\Facades\Excel'); $loader->alias('Firewall', 'PragmaRX\Firewall\Vendor\Laravel\Facade');
但是注册命令和安排调用呢?有没有方法可以做到这一点?如果是,我该怎么办?
我是新手试图学习良好的OOP实践,我陷入了这样的困境.更重要的是,我在哪里寻找这样的东西?有这方面的文件吗?因为我在laravel的Package Development部分找不到这个东西.
服务提供商有一个commands()
方法,将与工匠注册命令.您可以像这样使用它:
public function register() { $this->app->singleton('command.goodies.yourcommand', function ($app) { return $app['Your\Namespace\Commands\YourCommand']; }); $this->commands('command.goodies.yourcommand'); }
至于设置计划任务,我不相信可以(或应该)从您的包中完成.注册命令为用户提供了使用的工具.但是,安排任务正在尝试使用该工具.这应该留给用户去做.
您最好的选择是在文档中非常清楚如何安排任务以及您的建议."操作方法"还应包括输入cron作业,因为这可能是用户第一次设置计划任务.