在 PHP 中识别开发与生产服务器

php
2022-08-30 17:43:58

我每天使用两个应用程序服务器:一个开发,一个生产。来自不同开发人员的各种应用程序都存在于这些盒子上,以及一些通过cron运行的脚本。目前,我正在使用-D标志来httpd,以便我可以在代码中识别我的生产服务器,即。.不幸的是,这不适用于从命令行运行的脚本,因为它们不在Apache的保护伞下。isset($_SERVER['DEV'])

从本质上讲,我想要一种干净,简单的方法来识别开发与生产,这适用于每行代码

我排除了什么:

  • auto_prepend_file-- 我们已经在某些应用程序中使用此指令,并且您不能有多个自动预付费。

我目前正在探索的内容:

  • 自定义扩展 - 我确信创建一个仅定义新常量(可能受ini设置影响)的新扩展不会是世界上最困难的事情,但我在这方面没有经验。

那么,有什么技巧可以识别不涉及将代码注入每个脚本或应用程序的开发/生产吗?


答案 1

使用环境变量

只需设置一个环境变量。它适用于Windows和Linux,它们现在甚至被称为同一种东西。然后只需检查$_ENV["DEVVSPROD"]


答案 2

我通常只是做这样的事情:

if ($_SERVER['HTTP_HOST'] == 'localhost') // or any other host
{
     // development
}

else
{
     // production
}

推荐