2016-06-20 98 views
0

所以我对Laravel比较新,所以我试图寻求一些建议。我已阅读由laravel提供的软件包文档。现在我明白你需要一个服务提供商来将你的软件包连接到laravel,如下所示:Blog\BlogServiceProvider::class。现在我想要做的是有一个控制面板,可以直接从packagist安装软件包。现在我可以很容易地在代码中操作composer.json文件。但是,我试图解决的是声明服务提供者。我认为,如果我有一个动态安装,但您必须自己声明服务提供商会很不方便。有没有办法在Laravel 5中动态注册服务提供商?Laravel 5动态安装包

回答

3

您可以动态地通过App门面添加服务提供商:

App::register('App\Providers\SomeServiceProvider'); 
+0

这会保持它在的地方,否则我就需要有某种形式的初始化器总是引用安装者的? (我会让他们在我的数据库中) – mdixon18

+0

我会认为它会保持它的位置,因为这是一个低级别的函数。我不确定,但我认为app.php文件中的providers数组会被迭代,并且会调用它。我没有亲自尝试过,但是试试了一下。 – swatkins

+0

那么,哪里可以成为调用此功能的最佳场所?我需要一些东西来访问我的数据库,然后在路由之前注册所有提供者。我会如何处理这个问题? – mdixon18