xapon/yii2-environment

Yii2 的环境类,用于根据服务器环境设置控制台和 Web 应用的配置。

v1.0.1 2015-01-15 03:14 UTC

This package is auto-updated.

Last update: 2024-09-29 04:48:38 UTC


README

用于 Yii2 基本应用模板的环境配置类(例如开发、测试、预生产和生产)。

它用于根据环境设置配置和调试。您可以为不同的环境预先定义配置,如 开发、测试、预生产和生产

此库主要基于 Marco van 't Wout 的 Yii 1 环境扩展,由 Marco van 't Wout 提供。熟悉它之前版本的人可以轻松使用此版本的 Yii2。对于 高级应用模板,它可能没有用,因为框架开发人员已经提供了环境管理。尽管如此,我不喜欢高级模板,但仍然想在基本模板中处理环境配置。

主要配置(main.php)扩展以包含 Yii 路径和调试标志。对于特定环境,有 mode_<environment>.php 文件用于覆盖和扩展 main.php。此外,您还可以通过使用 local.php 配置来覆盖生成的配置,以使更改仅适用于您的特定安装。

此类旨在对默认 Yii 生成的文件影响最小。只需对索引/引导和现有配置文件进行最小更改即可。

环境由 PHP 的 getenv() 确定,它搜索 $_SERVER 和 $_ENV。根据您的偏好,有多种方式可以设置环境。在 Windows 和 Linux 上设置环境变量非常简单,其中包含了说明。您可以选择在配置目录中创建一个 mode.php 来覆盖环境。

如果您想自定义此类或其配置和模式,请扩展它!(请参阅 ExampleEnvironment.php

要求

在当前的(不稳定)Yii2 上进行测试,并在最终发布后可能工作(我会跟踪其更新以确保)。

安装

通过 Composer 安装

建议的安装方法是使用 Composer。我们假设供应商目录位于应用程序根目录。

  1. 将依赖项添加到您的项目中

    php composer.phar require xapon/yii2-environment "1.*"
    
  2. 修改您的 web/index.php(和其他引导文件)

  3. 修改您的 main.php 配置文件并添加特定模式的配置文件

  4. 设置您的本地环境(请参阅下一节)

从 zip 文件安装

下载 zip 归档 并将其解压到,例如,components 目录。然后由于 composer 自动加载对它不可用,请手动在您的 index.php 中包含 Environment 类。

设置环境

下面是设置您的环境为 DEV 的示例。

Windows

  1. 前往:控制面板 > 系统 > 高级 > 环境变量
  2. 添加新的 SYSTEM 变量:名称 = YII_ENV,值 = DEV

Linux/Mac

  1. 打开配置文件
  • 全局bash shell: /etc/profile
  • Apache (作为服务): /etc/apache2/envvars
  1. 添加以下行: export YII_ENV="DEV"

仅Apache (不能用于控制台应用程序)

  1. 检查是否启用了mod_env
  2. 打开您的 httpd.conf 或创建一个 .htaccess 文件
  3. 添加以下行: SetEnv YII_ENV DEV

仅项目

  1. 在您的应用程序的配置目录中创建一个 mode.php 文件。
  2. 将文件内容设置为: DEV

用法

更新引导文件

example-index/index.php

配置目录结构

您的 config/ 目录将看起来像这样

config/main.php                     (Global configuration)
config/mode_dev.php         (Environment-specific configurations)
config/mode_test.php
config/mode_staging.php
config/mode_prod.php
config/local.php                    (Optional, local override for mode-specific config. Don't put in your VCS!)

修改您的 config/main.php

example-config/main.php

可选: 在 configConsole 中,您可以通过使用值键 @ 来从 configWeb 复制设置(见示例文件夹)。

创建特定模式的配置文件

为不同的模式创建 config/mode_<mode>.php 文件。这些文件将覆盖或合并主配置中存在的属性。

可选: 还可以创建一个 config/local.php 文件以进行本地覆盖。

致谢

Yii 1 的原始库: https://github.com/marcovtwout/yii-environment

注意

  • 我尽量使库与其先前版本保持最大兼容性。尽管如此,我引入了一些更改。

    • 首先,为了在 configConsole 中从 configWeb 继承配置,您应使用 @ 符号而不是 inherit 关键字(这看起来要短得多!)。
    • 其次,为了使环境名称与 Yii2 保持一致,我将 development 模式更改为 devproduction 更改为 prodtesting 更改为 test。现在,Yii 已经为您设置了方便的布尔常量,如 YII_ENV_DEV,并且这个库确保它们根据所选的 mode 进行定义。
  • 这可能是我在 github 上的第一个项目,所以我非常期待问题报告、拉取请求、任何帮助、评论或批评。