我想为Laravel开发一些软件包。因此,我想创建一个符合La Laravel.com编写的Laravel-package开发指南的“主”包。然后我想用其他包扩展这个包(或者让其他开发人员扩展它)。
因此,我想让我/他们尽可能轻松。所以我正在寻找一种注册这些子包的方法,而无需在config / app.php中注册它们。
如果可以通过master-package注册和激活这些子包,那将是很好的,主包通过ServiceProvider,ClassAlias和Facade正确注册。或者有没有办法在config / app.php中自动注册它们?
我在GitHub caffeinated/modules上找到了一个包,它提供了类似的东西,但是不可能通过composer安装和更新新的包。
如果你们中的一个人可以帮我解决这个问题,那就太好了,因为我想尽可能地扩展master-package。
谢谢!
答案 0 :(得分:0)
您不需要含咖啡因/模块,Laravel支持使用开箱即用的所有组件注册模块,因此不需要此包。
我通常为我的模块做的是 - 我有一个主要的提供者,注册其他模块的其他提供者:
class MainModuleServiceProvider extends ServiceProvider
{
public function register()
{
$this->app->register( FirstModuleServiceProvider::class );
$this->app->register( SecondModuleServiceProvider::class );
}
}
在每个提供商中,我都会为模块视图,路由等注册提供程序:
class FirstModuleServiceProvider extends ServiceProvider
{
public function register()
{
$this->app->register( RouteServiceProvider::class );
$this->app->register( ViewServiceProvider::class );
}
}
在这些提供程序中,我按照Laravel文档中的说明加载视图,路由和发布迁移。