mradcliffe / laravel-settings-injector

0.2.1 2016-10-21 19:11 UTC

This package is auto-updated.

Last update: 2024-09-21 07:36:34 UTC


README

Build Status

laravel-settings-injector 提供了 Laravel 默认 LoadConfiguration 引导程序的替代品。

这允许您创建一个目录来管理来自应用程序目录外部的设置,使用符号链接,以便可以在系统级别管理各种环境特定的变量,以便在生产和其他内部环境中进行管理。

这可能对许多 Laravel 安装来说不是很有用,但是鉴于不建议在生产环境变量中使用 .env 文件,这是必要的,可以将生产变量从应用程序仓库中隐藏。优点是变量被限制在 LoadConfiguration 中,而不是使用全局环境变量。

安装

composer require mradcliffe/laravel-settings-injector

配置

  1. 修改 app/Http/Kernel.php
  2. \Illuminate\Foundation\Bootstrap\LoadConfiguration 替换为 \Radcliffe\LaravelSettingsInjector\Bootstrap\LoadConfiguration,可以通过修改现有的 ::$bootstrappers 受保护变量或在那个类的 ::bootstrappers() 方法中这样做。
  3. 修改 app/Console/Kernel.php 并向其中添加 \Illuminate\Foundation\Console\Kernel::$bootstrappers 受保护变量,并执行与上面 #2 相同的替换。

使用方法

请参阅 tests 目录以获取一些示例 fixture。

  1. 在应用程序根目录下创建一个 settings 目录。
  2. 在外部提供文件,但以某种方式由 settings/settings.php 所需。请参见下面的图片。
  3. config/*.php 中使用这些变量来配置您的应用程序。
    • 请注意,由于 Laravel 的工作方式,任何定义或要求可能会多次发生。具体来说,artisan config:cache 将在配置已经加载后再次加载配置,因此 settings/settings.php 或任何它所要求的文件中使用的 definerequire 需要考虑这一点。

Example Configuration