让一个包使用Laravel

时间:2016-07-25 04:31:45

标签: laravel packages

我想为Laravel开发一些软件包。因此,我想创建一个符合La Laravel.com编写的Laravel-package开发指南的“主”包。然后我想用其他包扩展这个包(或者让其他开发人员扩展它)。

因此,我想让我/他们尽可能轻松。所以我正在寻找一种注册这些子包的方法,而无需在config / app.php中注册它们。

如果可以通过master-package注册和激活这些子包,那将是很好的,主包通过ServiceProvider,ClassAlias和Facade正确注册。或者有没有办法在config / app.php中自动注册它们?

我在GitHub caffeinated/modules上找到了一个包,它提供了类似的东西,但是不可能通过composer安装和更新新的包。

如果你们中的一个人可以帮我解决这个问题,那就太好了,因为我想尽可能地扩展master-package。

谢谢!

1 个答案:

答案 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文档中的说明加载视图,路由和发布迁移。