我是YII框架的新手,我想知道是否有办法知道/检查您是从控制台还是在浏览器中运行?
谢谢!
答案 0 :(得分:9)
这个回复有点迟了,但有一种特定于Yii的方法可以做到这一点:
在Yii1中你可以这样做:
if (Yii::app() instanceof CConsoleApplication)
在Yii2中将是:
if (Yii::$app instanceof Yii\console\Application)
希望这对某人有用......
答案 1 :(得分:7)
您还应该能够:
echo get_class(Yii::app());
它会告诉你你在哪种类型的应用程序......
答案 2 :(得分:6)
您可以确定是否在控制台中运行PHP应用程序。
What is the canonical way to determine commandline vs. http execution of a PHP script?
答案 3 :(得分:1)
最有效的方法似乎是在根文件index.php中定义这一行:
define ('WEBAPP', true)
稍后您可以在任何时候检查应用程序
if (defined('WEBAPP')) {
echo "This is webapp";
} else {
echo "app was launched via console";
}
在Yii 1.7中检查
答案 4 :(得分:1)
检查Yii :: $ app-> id
答案 5 :(得分:0)
您可以使用
if(is_a(Yii::$app,'yii\console\Application'))
for console, and
if(is_a(Yii::$app,'yii\web\Application'))
for web.
答案 6 :(得分:0)
我正在使用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();
}