joségonzalez / cakephp-environments
CakePHP 插件,用于处理环境级别的配置
Requires
- php: >=5.4
- cakephp/cakephp: ~3.0
Requires (Dev)
- cakephp/cakephp-codesniffer: dev-master
- phpunit/phpunit: 4.1.*
- satooshi/php-coveralls: dev-master
This package is auto-updated.
Last update: 2024-08-29 04:03:23 UTC
README
环境插件
用于处理环境级别配置的插件
需求
- CakePHP 3.x
安装
[使用 Composer]
在 Packagist 上查看,并将最新版本的 json 片段复制到您的项目的 composer.json
文件中。例如,v. 1.0.0 将看起来像这样
{ "require": { "josegonzalez/cakephp-environments": "3.0.0" } }
启用插件
您需要在 config/bootstrap.php
文件中启用该插件
Plugin::load('Josegonzalez/Environments');
如果您在之前已经使用过 Plugin::loadAll();
,则此步骤不是必需的。
使用方法
设置以下目录结构
config/environments.php
config/environments/production.php
config/environments/staging.php
config/environments/development.php
我们指定多个 环境 文件来分离不同的配置,并便于检查特定环境。这不是必需的,但如果您正在配置大量信息,则很有用。
您的 environments.php
应包含以下内容
<?php use Josegonzalez\Environments\Environment; include dirname(__FILE__) . DS . 'environments' . DS . 'production.php'; include dirname(__FILE__) . DS . 'environments' . DS . 'staging.php'; include dirname(__FILE__) . DS . 'environments' . DS . 'development.php'; Environment::start(); ?>
然后,您需要在您的应用程序中包含您创建的 environments.php
文件,例如在 bootstrap.php
中
include dirname(__FILE__) . DS . 'environments.php';
这将
- 在可能尚未加载的情况下加载环境插件
- 按特定顺序包含每个环境
- 启动环境
环境配置
每个环境可以按照以下方式配置
Josegonzalez\Environments\Environment::configure($name, $params, $config = null, $callable = null);
此插件 config/environments
文件夹中的 \Josegonzalez\Environments\Environment::configure()
调用的示例用法。
-
$name
:通常是像production
或development
这样的东西。良好的做法是使用与文件相同的名称,这样就不会对给定的 env 文件包含的内容产生混淆 -
$params
:一个数组或布尔值,用于检查是否应用此环境。如果布尔值设置为 true,则此环境将自动启动。仅应将true
值用于开发如果之前的环境未启用,则将设置此环境
\Josegonzalez\Environments\Environment::configure( 'development', true, ['debug' => true] );
如果是一个数组,则 键 可以是调用的函数名称,而 值 将传递给它
\Josegonzalez\Environments\Environment::configure( 'development', [ 'some_function' => 'aValueForThisCheck', 'another_function' => 'aDifferentValueForThisCheck', ] );
在其他所有情况下,我们只是检查环境
\Josegonzalez\Environments\Environment::configure( 'octo_development', [ 'SERVER_NAME' => 'octo-example.dev', ] ); \Josegonzalez\Environments\Environment::configure( 'bear_development', [ 'SERVER_NAME' => 'bear-example.dev', ] ); \Josegonzalez\Environments\Environment::configure( 'development', [ 'CAKE_ENV' => 'development', ] );
如果我们正在 CLI 中运行,则强制执行的唯一检查是
CAKE_ENV
,并且其值必须是环境的名称CAKE_ENV=production Console/cake bake all
如果设置了
CAKE_ENV
环境变量,则它将优先于所有其他内容,包括$params
的布尔值。 -
$config
:如果设置,则是一个通过Configure::write()
设置的keys
=>values
的数组。对于批量设置 API 密钥、数据库连接信息等很有用。 -
$callable
:一个 PHP 可调用对象,例如['ClassName', 'functionName']
。还可以使用匿名函数。这是设置可能依赖于某些函数调用值的信息的首选方法。
许可
版权所有 (c) 2014 José Díaz-Gonzalez
本授权协议授予任何获得本软件及其相关文档副本(以下简称“软件”)的人士,在不受限制的情况下处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向提供软件的人士做上述事项,但须遵守以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“现状”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、适用于特定用途和未经授权的侵权保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论这些责任是基于合同、侵权或其他法律行为,以及与软件或软件的使用或其他相关事宜有关。