我在Google App Engine上运行了Zend Framework项目。一切都很好,除了一件事:
我无法设置环境变量来告诉Zend我处于开发模式
有什么想法吗?
(我在Ubuntu中使用PHP 5.4)
我尝试了什么
(显然我不想通过app.yaml设置变量...我无法通过.htaccess设置它,因为它没有被使用。我宁愿不必在我的代码中添加任何可能设置的条件这样的变量,或者)
我正在使用PHPStorm(IDE),它有一个很好的GAE插件。它甚至在环境变量的项目配置中有一个选项 - 除了它不起作用。我在PHPStorm(编辑配置> Google App Engine for PHP>命令行>环境变量)中设置变量,但是如果我做了
getenv()
从代码中返回
boolean false
为什么
我的目标是动态加载项目的开发配置,特别是我可以在本地使用MySQL,而不是在开发和测试应用程序时连接到CloudSQL。
答案 0 :(得分:2)
根据@ tim-hoffman的评论,我要使用的解决方案是我的/public/index.php文件中的以下一点逻辑,放在定义APPLICATION_ENV常量之前:
$env = getenv("SERVER_SOFTWARE");
if ($env !== false) {
if ((bool)preg_match("/development/", strtolower($env))) {
define("APPLICATION_ENV", "development");
}
}
在开发模式下,SERVER_SOFTWARE将返回字符串“Development / X.X”(版本号),在生产中,它将是“Google App Engine / X.Y.Z”