```
php可以通过这个实现
需要用到系统函数php_sapi_name() 或者 系统常量 PHP_SAPI,返回 cli 或 cli_server
```
golang可以么?
假设有如下场景
```
a方法 是去请求一个网址 有个超时时间
如果是用户api调用 超时时间就设置短点
如果是后台crontab或者命令行调用 就设置长点
```
```
当然从调用源头是可以区分的,但是麻烦.
比如a这个方法,可能是e调用d,d调用c,c调用b,b才调用a,就是链路比较长,不想吧这个标识从源头一路传下来.
就想在a这个方式实时获取.
```
php是脚本语言,可以通过 php-fpm 方式运行,也可以通过 cli 模式运行。
而 golang 是编译型语言,是先将源码编译成二级制文件,然后再命令行模式下执行,所以 golang 只有一种执行方式:命令行下执行二进制文件。
如果一个二进制 goalng 程序可以执行不同的命令,比如:
```
gin start web
```
```
gin start work
```
```
gin start crontab
```
那么就可以以在不通的入口处设置全局环境变量来标明是执行的哪个动作。然后根据不同的动作做不同的配置。
#3