如何检查YII应用程序是从控制台还是从浏览器运行?
我是YII框架的新手,我想知道是否有办法知道/检查您是从控制台还是在浏览器中运行如何检查YII应用程序是从控制台还是从浏览器运行?,yii,Yii,我是YII框架的新手,我想知道是否有办法知道/检查您是从控制台还是在浏览器中运行 谢谢 以同样的方式确定PHP应用程序是否正在控制台中运行 您还应该能够做到: echo get_class(Yii::app()); 这将告诉您所使用的应用程序类型…最有效的方法似乎是在根文件index.php中定义这一行: define ('WEBAPP', true) 稍后,您可以在应用程序的任何位置签入 if (defined('WEBAPP')) { echo "This is webapp"; }
谢谢 以同样的方式确定PHP应用程序是否正在控制台中运行
您还应该能够做到:
echo get_class(Yii::app());
这将告诉您所使用的应用程序类型…最有效的方法似乎是在根文件index.php中定义这一行:
define ('WEBAPP', true)
稍后,您可以在应用程序的任何位置签入
if (defined('WEBAPP')) {
echo "This is webapp";
} else {
echo "app was launched via console";
}
签入Yii 1.7此回复有点晚,但有一种Yii特定的方法可以做到这一点: 在Yii1中,您可以执行以下操作:
if (Yii::app() instanceof CConsoleApplication)
在Yii2中,这将是:
if (Yii::$app instanceof Yii\console\Application)
希望对某人有用…您可以使用
if(is_a(Yii::$app,'yii\console\Application'))
for console, and
if(is_a(Yii::$app,'yii\web\Application'))
for web.
检查Yii::$app->id
- 从控制台运行时:Yii::$app->id='app console'
- 从前端(浏览器)运行时,Yii::$app->id='app frontend'
public static function isWebRequest()
{
return Yii::app() instanceof CWebApplication;
}
public static function isConsoleRequest()
{
return Yii::app() instanceof CConsoleApplication; //!self::isWebRequest();
}
我将这些函数放在helper(Componenet)类中,并将其用作:
if(MyRandomHelper::isConsoleRequest())
{
Email::shoot();
}
谢谢,我还以为有一个我不知道的“YII特定”功能。再次感谢。