Php Yii2控制台应用程序:如何检测运行时环境?

Php Yii2控制台应用程序:如何检测运行时环境?,php,yii,yii2,yii2-basic-app,Php,Yii,Yii2,Yii2 Basic App,假设我有一个PHP Yi2控制台应用程序,在命令行中运行,如下所示 /var/www/my_app/yii myconsole/action 当我在我的生产服务器上部署应用程序(作为cronjob运行)时,我很难找到一种优雅的方法来检测应用程序是在我的本地机器上运行还是在生产服务器上运行 当它是一个web应用程序时,在VirtualHost中设置环境变量是一个很好的解决方案。但对于控制台应用程序,现在我可以使用php\u uname()函数通过机器名来区分环境,有没有更好的方法 基本上,检查i

假设我有一个PHP Yi2控制台应用程序,在命令行中运行,如下所示

/var/www/my_app/yii myconsole/action
当我在我的生产服务器上部署应用程序(作为cronjob运行)时,我很难找到一种优雅的方法来检测应用程序是在我的本地机器上运行还是在生产服务器上运行

当它是一个web应用程序时,在VirtualHost中设置环境变量是一个很好的解决方案。但对于控制台应用程序,现在我可以使用
php\u uname()
函数通过机器名来区分环境,有没有更好的方法

基本上,检查index.php文件以查看定义了哪个yi_ENV,然后可以全局调用它


希望有帮助

没错,但console应用程序仍然有一个定义此变量的位置。还记得如何运行控制台命令(
yii something/something
)。这是您的输入脚本。
yii
是的,我们可以在
yii
输入点中定义常量,但我需要一种方法让yii控制台应用程序自动检测当前环境,并根据检测到的环境设置这些变量。自动基于什么?Yii2如何确定您正在使用的环境?yii entry脚本相当于index.php,您应该在那里设置环境变量。请参阅高级模板和环境的设置,index.php和yii都不在主存储库中,但它们是由php init安装的。