joségonzalez/cakephp-environments

CakePHP 插件,用于处理环境级别的配置

3.0.0 2015-12-13 01:02 UTC

This package is auto-updated.

Last update: 2024-08-29 04:03:23 UTC


README

Build Status Coverage Status Total Downloads Latest Stable Version Documentation Status Gratipay

环境插件

用于处理环境级别配置的插件

需求

  • 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:通常是像 productiondevelopment 这样的东西。良好的做法是使用与文件相同的名称,这样就不会对给定的 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

本授权协议授予任何获得本软件及其相关文档副本(以下简称“软件”)的人士,在不受限制的情况下处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向提供软件的人士做上述事项,但须遵守以下条件:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“现状”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、适用于特定用途和未经授权的侵权保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论这些责任是基于合同、侵权或其他法律行为,以及与软件或软件的使用或其他相关事宜有关。