首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从供应商包本身引导laravel 5服务提供商?

如何从供应商包本身引导laravel 5服务提供商?
EN

Stack Overflow用户
提问于 2016-01-07 12:55:31
回答 3查看 2.4K关注 0票数 6

我正在做一个Laravel 5应用程序,现在应用程序的代码应该被重用在多个laravel 5应用程序中,这就是为什么我要创建一个composer软件包,然后我想在任意数量的laravel 5应用程序中安装这个软件包,以具有相同的功能并在其之上构建。

我对composer软件包开发很陌生,尤其是使用服务提供商将软件包与Laravel 5挂钩。到目前为止,我了解到,如果我使用的服务提供商如下,我将能够使用的路线,在laravel 5申请:

代码语言:javascript
复制
<?php

namespace Uppdragshuset\AO\Tenant;

use Illuminate\Support\ServiceProvider;

class TenantServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot()
    {
        //
    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        include __DIR__.'/routes.php';
    }
}

现在,我只需要通过composer将这个包安装到任何全新的Laravel 5安装中,然后我只需要在app.php中更新提供者的数组就可以了:

代码语言:javascript
复制
Uppdragshuset\AO\Tenant\TenantServiceProvider::class

这对我来说很有意义,也很有效。但现在,我正在开发的包也有自己的依赖项,其中许多依赖包也包含了laravel 5服务提供商,因此我必须手动将所有这些包都包含在laravel5安装中,以使它们正常工作。

但是,我猜想一定有一种方法可以在我自己创建的包中注册这些依赖的服务提供者,所以我只需要注册上面提到的一个提供者。问题是我不知道怎么做,也找不到类似的参考资料。如何从composer包本身注册多个服务提供者?

EN

Stack Overflow用户

发布于 2018-11-14 14:20:45

更新

由于Laravel5.5,您现在可以通过将以下块添加到包的composer.json中,向依赖于它的应用程序注册包的服务提供者:

代码语言:javascript
复制
...
"extra": {
    "laravel": {
        "providers": [
            "Acme\\Package\\ServiceProvider"
        ]
    }
},
...

请参阅文档:https://laravel.com/docs/5.5/packages#package-discovery

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34655713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档