Menu

Laravel Artisan 命令行:检测是否在命令行执行?

Laravel Artisan 命令行

有时候,我们需要判断是否是在命令行环境中执行,可以使用:

if (app()->runningInConsole()) {
    // 运行在命令行下
}

当然,在 PHP 中,你永远可以使用 PHP 原生的方法来检测:

if (strpos(php_sapi_name(), 'cli') !== false) {
    // 运行在命令行下
}
本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 10
wanghan

这是干啥用的?

6个月前

@wanghan 判断是不是在 命令行 下运行的

6个月前

难道php_sapi_name()还会输出其他的,我测试都是输出 cli

6个月前
Summer

@lovecn 当然咯,例如 fpm 里就是 "fpm-fcgi"

6个月前

@puzzle9 还是没理解,能不能举个例子

5个月前
Hanson
5个月前
Bowens

例如:laravel定时任务

5个月前

既然是 wiki,建议加上参考链接一栏。

4个月前

@hehorange 这个一般是写在bootstrap/app.php 这个里边
你把这个写在 这里边 然后在命令随便打个命令 你就知道了
如果是在命令行 if里边随便输出一个字符

3个月前
if (PHP_SAPI == 'cli') {
   // console
}else{
  // other..
}
1个月前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!