sven/env-providers

根据您应用程序的环境加载 Laravel 服务提供者。

v4.1.0 2023-12-07 18:40 UTC

README

env-providers

Laravel EnvProviders

Latest Version on Packagist Total Downloads Software License Build Status StyleCI

管理 Laravel 中服务提供者的一种更精细的方式。此包允许您配置特定服务提供者和别名应在哪种环境中加载。

安装

通过 composer

$ composer require sven/env-providers

或者在 composer.json 的依赖项中添加此包,并运行 composer update 下载包

{
    "require": {
        "sven/env-providers": "^4.0"
    }
}

接下来,将 ServiceProvider 添加到您的 config/app.php 文件中的 providers 数组中

// config/app.php
'providers' => [
    ...
    Sven\EnvProviders\ServiceProvider::class,
];

使用方法

您必须发布此包的配置文件才能正常工作。为此,请运行以下命令

$ php artisan vendor:publish --provider="Sven\EnvProviders\ServiceProvider"

之后,您应该会看到文件 config/providers.php。在创建的配置文件中,您可以查看两个预定义的服务提供者组,这将帮助您设置在配置的环境下应加载哪些提供者和别名。

环境

environments 数组中,您可以定义所谓的“环境别名”。例如,如果您为 local 开发使用了多个名称(例如 devdevelopmentlocal),则可以将这些名称都别名为一个名称,以便在本包的配置中使用。

注意:您可以在 config/app.php 文件中的 env 下设置您应用程序的环境,或者通过您的 .env 文件设置。如果您想通过 php artisan 管理您的 .env 文件,可以查看 sven/flex-env

配置中的 groups 键用于在先前定义的环境中加载服务提供者和别名(也称为外观)。您可以使用 * 作为通配符来始终加载该组,无论应用程序的环境如何。

提供者

providers 数组中,您可以放置您希望在定义的环境中加载的提供者。这应该非常直观,因为它与您在 config/app.php 中注册服务提供者的方式类似。

别名

aliases 数组中,您可以定义所有您的别名(外观)。与提供者一样,这与您在默认的 config/app.php 配置文件中注册别名的方式相同。

示例

return [
    'environments' => [
        'dev' => ['local', 'development', 'dev'],
        'prod' => ['production'],
    ],
    
    'groups' => [
        'dev' => [
            'providers' => [
                Sven\ArtisanView\ArtisanViewServiceProvider::class,
                Barryvdh\Debugbar\ServiceProvider::class,
            ],
            'aliases' => [
                'Debugbar' => Barryvdh\Debugbar\Facade::class,
            ],
        ],
        'prod' => [
            'providers' => [ /* ... */ ],
            'aliases' => [ /* ... */ ],
        ],
        '*' => [
            'providers' => [ /* ... */ ],
            'aliases' => [ /* ... */ ],
        ],
    ],
    
],

注意我们只在我们应用程序的环境是 localdevelopmentdev 时加载 Debugbar ServiceProvider 和外观。这意味着当环境不匹配这些之一时,我们无法在项目中使用 Debugbar 外观。

贡献

所有贡献(拉取请求、问题和功能请求)都受到欢迎。但是,请先阅读 CONTRIBUTING.md。有关所有贡献者的信息,请参阅 贡献者页面

许可证

sven/env-providers 采用 MIT 许可证(MIT)授权。有关更多信息,请参阅 许可证文件