当前位置:  开发笔记 > 编程语言 > 正文

如何在laravel 5中动态注册命令和调度程序?

如何解决《如何在laravel5中动态注册命令和调度程序?》经验,为你挑选了1个好方法。

我正在研究一个由多个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部分找不到这个东西.



1> patricus..:

服务提供商有一个commands()方法,将与工匠注册命令.您可以像这样使用它:

public function register()
{
    $this->app->singleton('command.goodies.yourcommand', function ($app) {
        return $app['Your\Namespace\Commands\YourCommand'];
    });
    $this->commands('command.goodies.yourcommand');
}

至于设置计划任务,我不相信可以(或应该)从您的包中完成.注册命令为用户提供了使用的工具.但是,安排任务正在尝试使用该工具.这应该留给用户去做.

您最好的选择是在文档中非常清楚如何安排任务以及您的建议."操作方法"还应包括输入cron作业,因为这可能是用户第一次设置计划任务.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有