percymamedy / laravel-dev-booter
通过仅在生产环境中注册生产服务来提升您的Laravel应用程序。
Requires
- php: ^8.2
- illuminate/support: ^11.0
Requires (Dev)
- laravel/pint: ^1.16
- orchestra/testbench: ^9.0
- phpunit/phpunit: ^10.0
README
Laravel dev booter
简介
在开发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_keys
和dev_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, ],
鸣谢
向所有努力创造惊人成就的开发者致以最诚挚的感谢!
创建者
推特: @PercyMamedy
GitHub: percymamedy