我是 YII 框架的新手,我想知道是否有办法知道/检查您是从控制台还是在浏览器中运行?
谢谢!
这个回复有点晚了,但是有一个 Yii 特定的方法可以做到这一点:
在 Yii1 中你可以这样做:
if (Yii::app() instanceof CConsoleApplication)
在 Yii2 中,这将是:
if (Yii::$app instanceof Yii\console\Application)
希望这对某人有用...
您还应该能够:
echo get_class(Yii::app());
这将告诉您您使用的是哪种类型的应用程序...
同样的方式,您将确定 PHP 应用程序是否正在控制台中运行。
检查 Yii::$app->id
最有效的方法似乎是在根文件 index.php 中定义这一行:
define ('WEBAPP', true)
稍后您可以在任何点签入应用程序
if (defined('WEBAPP')) {
echo "This is webapp";
} else {
echo "app was launched via console";
}
签入 Yii 1.7
我正在使用 Yii 1,我使用这个功能来检查
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();
}
您可以使用
if(is_a(Yii::$app,'yii\console\Application'))
for console, and
if(is_a(Yii::$app,'yii\web\Application'))
for web.