实现一:
// 检测环境变量
$env = isset($_SERVER['APPLICATION_ENV']) ? $_SERVER['APPLICATION_ENV'] : 'development';
if (!in_array($env, array('development', 'testing', 'production', 'preview'))){
exit('can not identify environment');
}
define('APP_STATUS', $env);
config.php
// 应用模式状态
'app_status' => APP_STATUS,
然后在 development.php 或 testing.php 里就配置你不同的数据库或其他,nginx 的fastcgi的param 配一下这个APPLICATION_ENV变量即可。
实现二:
if ($_SERVER['HTTP_HOST'] == 'test.oa.com' || $_SERVER['HTTP_HOST'] == 'pro.oa.com') {
//production enviroment
define("DB_HOST",'10.10.10.10');
define("DB_PORT",'10000');
define("DB_USER",'testtest');
define("DB_PASSWORD",'test@2018');
define("DB_DATABASE",'testtest');
define("DEBUG", false);
define("RIO_TOKEN", $_SERVER['HTTP_HOST'] == 'pro.oa.com' ? 'Q3NednewYAsdfhGq0oxECHI2TyzFTpIW': '29f043705ba64532sdfgsa4eb8296aa2082');
} else if ($_SERVER['HTTP_HOST'] == 'dev.oa.com') {
//节能减排小游戏
define("DB_HOST",'10.10.10.11');
define("DB_PORT",'10000');
define("DB_USER",'testtest1');
define("DB_PASSWORD",'test1@2018');
define("DB_DATABASE",'testtest1');
define("DEBUG", false);
define("RIO_TOKEN", '0b06e8sdf0c443ba625230ea4fd448a');
} else {
define("DB_HOST",'10.0.0.12');
define("DB_PORT",'3306');
define("DB_USER",'xtcdev');
define("DB_PASSWORD",'test@2017');
define("DB_DATABASE",'testtes');
define("DEBUG", true);
define("RIO_TOKEN",'EPkmJrEcsdfsdoblwefB442xapn3hp3PVHM');
}
实现三:
public/index.php 入口脚本
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'));
实现四: //虚拟主机
// you can also edit your virtual host configuration adding this line:
SetEnv APPLICATION_ENV "development"
...