mradcliffe / laravel-settings-injector
Laravel 设置注入器
0.2.1
2016-10-21 19:11 UTC
Requires (Dev)
- laravel/framework: ~5.3
- phpspec/prophecy: ~1.6
- phpunit/phpunit: ~4.8
This package is auto-updated.
Last update: 2024-09-21 07:36:34 UTC
README
laravel-settings-injector 提供了 Laravel 默认 LoadConfiguration 引导程序的替代品。
这允许您创建一个目录来管理来自应用程序目录外部的设置,使用符号链接,以便可以在系统级别管理各种环境特定的变量,以便在生产和其他内部环境中进行管理。
这可能对许多 Laravel 安装来说不是很有用,但是鉴于不建议在生产环境变量中使用 .env 文件,这是必要的,可以将生产变量从应用程序仓库中隐藏。优点是变量被限制在 LoadConfiguration 中,而不是使用全局环境变量。
安装
composer require mradcliffe/laravel-settings-injector
配置
- 修改
app/Http/Kernel.php
。 - 将
\Illuminate\Foundation\Bootstrap\LoadConfiguration
替换为\Radcliffe\LaravelSettingsInjector\Bootstrap\LoadConfiguration
,可以通过修改现有的::$bootstrappers
受保护变量或在那个类的::bootstrappers()
方法中这样做。 - 修改
app/Console/Kernel.php
并向其中添加\Illuminate\Foundation\Console\Kernel::$bootstrappers
受保护变量,并执行与上面 #2 相同的替换。
使用方法
请参阅 tests
目录以获取一些示例 fixture。
- 在应用程序根目录下创建一个
settings
目录。 - 在外部提供文件,但以某种方式由
settings/settings.php
所需。请参见下面的图片。 - 在
config/*.php
中使用这些变量来配置您的应用程序。- 请注意,由于 Laravel 的工作方式,任何定义或要求可能会多次发生。具体来说,
artisan config:cache
将在配置已经加载后再次加载配置,因此settings/settings.php
或任何它所要求的文件中使用的define
或require
需要考虑这一点。
- 请注意,由于 Laravel 的工作方式,任何定义或要求可能会多次发生。具体来说,