php.ini中是否有任何选项来设置此环境是生产还是开发?

时间:2015-04-24 06:26:50

标签: php apache php-5.5

...这样我就可以编写自定义日志代码了。例如,我在生产和开发环境中的密码不同,因此我使用get_cfg_var("mysqli.default_pw"),因此当我将代码推送到生产环境时,我不需要编辑密码。

我需要生产开发设置,因为我希望在生产环境中始终显示日志记录,并且我希望在开发环境中显示记录到我的静态IP。 (通过记录我的意思是JSON响应中的SQL查询,以及其他一些小事)。

1 个答案:

答案 0 :(得分:3)

在php.ini *中没有这样的东西,但你只能通过setting an environment variable来做到这一点:

SetEnv MYAPP_ENVIRONMENT production

将其放入核心Apache(虚拟)主机配置文件或.htaccess文件中,具体取决于您有权访问。

在PHP中,然后使用getenv

switch (getenv('MYAPP_ENVIRONMENT')) {
    case 'production':
        ...
    default:
        ...
}

实际上,不是通过环境变量对switch的不同配置进行硬编码,而是考虑完全通过环境变量设置必要的配置。或者使用该变量指向您在PHP中include的配置文件:

require_once (getenv('MYAPP_CONFIG') ?: 'defaults.php');

更好:您有一个中性默认配置,您可以通过环境变量有选择地覆盖单个参数。我会把它作为练习留给读者。

根据经验和设计准则:您不应将特定于系统的配置数据提交到源代码存储库中。

*我想你可以添加你想要的任何配置到php.ini,但你不应该。该文件是所有PHP实例的系统范围配置。您真正想要的是应用程序/(虚拟)主机特定,因此Apache中的标志更合适。