xapon / yii2-environment
Yii2 的环境类,用于根据服务器环境设置控制台和 Web 应用的配置。
Requires
- php: >=5.4
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。我们假设供应商目录位于应用程序根目录。
-
将依赖项添加到您的项目中
php composer.phar require xapon/yii2-environment "1.*"
-
修改您的
web/index.php
(和其他引导文件) -
修改您的
main.php
配置文件并添加特定模式的配置文件 -
设置您的本地环境(请参阅下一节)
从 zip 文件安装
下载 zip 归档 并将其解压到,例如,components
目录。然后由于 composer 自动加载对它不可用,请手动在您的 index.php 中包含 Environment 类。
设置环境
下面是设置您的环境为 DEV
的示例。
Windows
- 前往:控制面板 > 系统 > 高级 > 环境变量
- 添加新的 SYSTEM 变量:名称 =
YII_ENV
,值 =DEV
Linux/Mac
- 打开配置文件
- 全局bash shell:
/etc/profile
- Apache (作为服务):
/etc/apache2/envvars
- 添加以下行:
export YII_ENV="DEV"
仅Apache (不能用于控制台应用程序)
- 检查是否启用了mod_env
- 打开您的
httpd.conf
或创建一个.htaccess
文件 - 添加以下行:
SetEnv YII_ENV DEV
仅项目
- 在您的应用程序的配置目录中创建一个
mode.php
文件。 - 将文件内容设置为:
DEV
用法
更新引导文件
配置目录结构
您的 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
可选: 在 configConsole
中,您可以通过使用值键 @
来从 configWeb
复制设置(见示例文件夹)。
创建特定模式的配置文件
为不同的模式创建 config/mode_<mode>.php
文件。这些文件将覆盖或合并主配置中存在的属性。
- 见 example-config/mode_dev.php
- 见 example-config/mode_test.php
- 见 example-config/mode_staging.php
- 见 example-config/mode_prod.php
可选: 还可以创建一个 config/local.php
文件以进行本地覆盖。
致谢
Yii 1 的原始库: https://github.com/marcovtwout/yii-environment
注意
-
我尽量使库与其先前版本保持最大兼容性。尽管如此,我引入了一些更改。
- 首先,为了在
configConsole
中从configWeb
继承配置,您应使用@
符号而不是inherit
关键字(这看起来要短得多!)。 - 其次,为了使环境名称与 Yii2 保持一致,我将
development
模式更改为dev
,production
更改为prod
,testing
更改为test
。现在,Yii 已经为您设置了方便的布尔常量,如YII_ENV_DEV
,并且这个库确保它们根据所选的mode
进行定义。
- 首先,为了在
-
这可能是我在 github 上的第一个项目,所以我非常期待问题报告、拉取请求、任何帮助、评论或批评。