percymamedy/laravel-dev-booter

通过仅在生产环境中注册生产服务来提升您的Laravel应用程序。

v5.0.0 2024-07-11 12:28 UTC

This package is auto-updated.

Last update: 2024-09-12 07:40:39 UTC


README

Laravel dev booter

Latest Stable Version Latest Unstable Version License Total Downloads

简介

在开发Laravel应用程序期间,一些服务提供者非常有用。这些服务可以帮助我们进行调试和编码。但在生产环境中注册这些提供者通常不是一个好主意。它们可能会减慢我们的应用程序,甚至暴露敏感信息。

Laravel Dev Booter帮助解决这个问题。该软件包包含一个单一的Service Provider。这个提供者将排除不需要的生产环境中的提供者。

许可

Laravel Dev Booter是开源软件,根据MIT许可授权。

版本兼容性

安装

像安装其他由Composer管理的依赖项一样安装Laravel Dev Booter。

$ composer require percymamedy/laravel-dev-booter

配置

如果您正在使用Laravel >= 5.5,则可以利用Laravel自动包发现功能跳过服务注册和别名注册。

安装Laravel Dev Booter后,您只需在配置文件config/app.php中注册PercyMamedy\LaravelDevBooter\ServiceProvider即可。

'providers' => [
    // Other service providers...

    PercyMamedy\LaravelDevBooter\ServiceProvider::class,
],

用法

首先使用vendor:publish命令将配置文件复制到您的应用程序中

$ php artisan vendor:publish --provider="PercyMamedy\LaravelDevBooter\ServiceProvider" --tag="config"

这将创建文件config/dev-booter.php

定义您的开发环境

在文件config/dev-booter.php中,您将找到dev_environments部分。使用此部分来定义应用程序的开发环境

'dev_environments' => [
    'local',
    'dev',
    'testing'
],

这些是Dev Booter将起作用的唯一环境;并尝试注册任何服务提供者。

开发服务提供者位置

config/dev-booter.php文件中的下一部分是dev_providers_config_keys。该数组包含上述指定的每个开发环境的一个条目。请随意添加和编辑此部分。

'dev_providers_config_keys' => [
    'dev'     => ['app.dev_providers', 'app.local_providers'],
    'local'   => 'app.local_providers',
    'testing' => 'app.testing_providers',
]

这些条目的值可以是数组或字符串。这些值表示每个环境的服务提供者数组的位置。您甚至可以为环境指定多个位置,Dev Booter将负责在每个位置加载提供者。

您现在可以在config/app.php文件中定义这些服务提供者数组,就像为任何常规服务提供者一样。

'dev_providers' => [
    Foo\Bar\ServiceProvider::class,
],

'local_providers' => [
    Bar\Baz\ServiceProvider::class,
],

'testing_providers' => [
    Foo\Baz\ServiceProvider::class,
],

开发别名位置

config/dev-booter.php文件的最后一部分是dev_aliases_config_keys。与服务提供者一样,它遵循相同的原理。

您首先指定每个环境的别名位置

'dev_aliases_config_keys' => [
    'dev'     => ['app.dev_aliases', 'app.local_aliases'],
    'local'   => 'app.local_aliases',
    'testing' => 'app.testing_aliases',
]

然后在config/app.php文件中定义这些别名数组

'dev_aliases' => [
    'Foo' => Foo\Bar\Facade::class,
],

'local_aliases' => [
    'Bar' => Bar\Baz\Facade::class,
],

'testing_aliases' => [
    'Baz' => Foo\Baz\Facade::class,
],

进一步学习

在上面的示例中,提供者和别名数组是在config/app.php中定义的,但这并不一定非得如此。您可以在Laravel提供的任何配置文件中定义这些数组,甚至创建自己的配置文件。只需确保调整您的dev_providers_config_keysdev_aliases_config_keys

例如

'dev_providers_config_keys' => [
    'dev' => ['app_dev.dev_providers', 'app_dev.local_providers'],
    // ...
]

然后在config/app_dev.php

'dev_providers' => [
    Foo\Bar\ServiceProvider::class,
],

'local_providers' => [
    Bar\Baz\ServiceProvider::class,
],

鸣谢

向所有努力创造惊人成就的开发者致以最诚挚的感谢!

创建者

Percy Mamedy

推特: @PercyMamedy
GitHub: percymamedy