Laravel Artisan 命令行:检测是否在命令行执行? 0 个改进

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

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

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

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

这是干啥用的?

10个月前 评论

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

10个月前 评论

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

10个月前 评论
Summer

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

10个月前 评论

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

9个月前 评论
Hanson

@hehorange 举个栗子, https://github.com/Hanson/vbot/blob/7cbe5c...

vbot 只允许用户在 terminal 中运行

9个月前 评论
Bowens

例如:laravel定时任务

9个月前 评论

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

8个月前 评论

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

7个月前 评论
if (PHP_SAPI == 'cli') {
   // console
}else{
  // other..
}
5个月前 评论

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