谁一开始就是大神?

如何自动切换生产环境和测试环境,不需要手动[2.0]

其实就是怎么判断 测试环境

defined ( 'YII_DEBUG' ) or define ( 'YII_DEBUG', true );
defined ( 'YII_ENV' ) or define ( 'YII_ENV', 'dev' );

或者是生产环境

defined ( 'YII_DEBUG' ) or define ( 'YII_DEBUG', false );
defined ( 'YII_ENV' ) or define ( 'YII_ENV', 'PRODUCTION' );

參考 的作法
以下為 $_SERVER 的舉例
看你的生产环境和测试环境有什么不同;比如PHP_OS$_SERVER等等吧
两个方式吧
1 服务器方面:
如nginx 可以配置$_SERVER 变量为DEBUG = true,在程序中直接判断$_SERVER[‘DEBUG’];
2 PHP版本上
开发环境下 在php.ini下 添加 变量 DEBUG = true; php函数 get_cfg_var(‘debug’) == 1则为开发环境
不要去做这样的事情,多一些if就多一些性能损耗,而且这种损耗是不可避免的,因为你把判断放在了入口。
我认为最简单的方法是在线上环境放一个文件,如dev.lock,入口判断一下是否有这个文件,进行设置环境。只有一步判断,性能影响可以忽略不计。
当你的项目部署完毕,你不应当尝试去改动他的入口文件index.php。除非你的项目一天换一台服务器。
你应当把index.php从版本控制中去除,以保证push和pull时index.php不会受到本地或者线上环境的影响。
而事实上,托管于github的YII也确实这么做了。
我们之前会使用环境变量来处理这个问题

赞(0) 打赏
未经允许不得转载:菜鸟之家 » 如何自动切换生产环境和测试环境,不需要手动[2.0]

评论 抢沙发

登录

找回密码

注册