webman中如何知道我是否在 “CLI”下。

南部荒人

webman中如何知道我是否在 “CLI”下。

我在webman中,引入了webman/console。我需要在Logger中区分是console调用了还是app/controller中调用了。

众所周知,我无法通过 php_sapi_name() == 'cli' 来判定。

我该如何知道当前是Console还是Controller

1193 3 1
3个回答

oliusha
  • 南部荒人 2023-03-05

    嗯嗯。谢谢 @oliusha。在自定义worker中的确可以这样。 我想全局场景中获取。

南部荒人

有点尴尬了。

场景:我以 php start.php start 的方式启动服务,同时定义了一个自定义进程,自定义进程监听8888。

在webman的http场景中,我用 @北月 提供的方法判定 $argv[0] === 'webman'是否在CLI模式下没问题的。但是这时候在自定义进程中,就无效了。。。

  • 南部荒人 2023-03-12

    在使用Logger的时候,可以自定义extra,我想在http的场景中塞入session_id,用以后续追踪用户, 但是在CLI下,我想extra中塞入getmypid(), 每次使用info/error/warning的时候都要手动塞上比较麻烦,我想在全局通过判定CLI来直接塞上。

南部荒人

结贴了。

function is_cli(){
   return !\request();
}
  • 暂无评论
年代过于久远,无法发表回答
×
🔝