我是YII框架的新手,我想知道是否有办法知道/检查您是从控制台还是在浏览器中运行?谢谢你!
fcwjkofz1#
这个回复有点晚了,但是有一个Yii特有的方法可以做到这一点:在Yii1中您可以执行以下操作:
if (Yii::app() instanceof CConsoleApplication)
在Yii2中,这将是:
if (Yii::$app instanceof Yii\console\Application)
希望这对某些人有用...
bf1o4zei2#
您还应该能够:
echo get_class(Yii::app());
它会告诉你你使用的是什么类型的应用程序...
wd2eg0qa3#
与您确定PHP应用程序是否正在控制台中运行的方法相同。What is the canonical way to determine commandline vs. http execution of a PHP script?
vkc1a9a24#
请检查Yii::$app-〉id
pdkcd3nj5#
最有效的方法似乎是在根文件index.php中定义这一行:
define ('WEBAPP', true)
稍后,您可以随时签入应用程序
if (defined('WEBAPP')) { echo "This is webapp"; } else { echo "app was launched via console"; }
已在Yii 1.7中登记
cclgggtu6#
您可以使用
if(is_a(Yii::$app,'yii\console\Application')) for console, and if(is_a(Yii::$app,'yii\web\Application')) for web.
https://stackoverflow.com/a/30635800/4916039
t2a7ltrp7#
我正在使用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(); }
7条答案
按热度按时间fcwjkofz1#
这个回复有点晚了,但是有一个Yii特有的方法可以做到这一点:
在Yii1中您可以执行以下操作:
在Yii2中,这将是:
希望这对某些人有用...
bf1o4zei2#
您还应该能够:
它会告诉你你使用的是什么类型的应用程序...
wd2eg0qa3#
与您确定PHP应用程序是否正在控制台中运行的方法相同。
What is the canonical way to determine commandline vs. http execution of a PHP script?
vkc1a9a24#
请检查Yii::$app-〉id
pdkcd3nj5#
最有效的方法似乎是在根文件index.php中定义这一行:
稍后,您可以随时签入应用程序
已在Yii 1.7中登记
cclgggtu6#
您可以使用
https://stackoverflow.com/a/30635800/4916039
t2a7ltrp7#
我正在使用Yii 1,我使用这个函数来检查
我将这些函数放在一个helper(Componenet)类中,并将其用作: