了解您是否在命令中运行,以及Symfony中的命令参数

了解您是否在命令中运行,以及Symfony中的命令参数,symfony,Symfony,我们有一个可以从Symfony命令和普通web请求调用的服务。有没有办法确定服务是通过命令调用的,还是通过web请求调用的?如果是这样,如果是从命令调用的,是否有方法找出运行命令时使用的参数?您好,您可以使用此方法来了解服务是否从cli使用,如果它使用apache运行,您将获得此apache2handler if(php\u sapi\u name()=“cli”){ //一些代码 } 在symfony控制台中 命令行上下文不知道您的虚拟主机或域名 这意味着您可以检查请求方案、主机、基本url

我们有一个可以从Symfony命令和普通web请求调用的服务。有没有办法确定服务是通过命令调用的,还是通过web请求调用的?如果是这样,如果是从命令调用的,是否有方法找出运行命令时使用的参数?

您好,您可以使用此方法来了解服务是否从cli使用,如果它使用apache运行,您将获得此
apache2handler

if(php\u sapi\u name()=“cli”){
//一些代码
}
在symfony控制台中

命令行上下文不知道您的虚拟主机或域名


这意味着您可以检查请求方案、主机、基本url和基本路径,因为这些请求属性在控制台上下文中没有值,除非您对它们进行配置()

如果从命令调用它,那么为例如
$isCalledFromCommand
向设置为
true
的服务添加一个变量怎么样?参数也一样。我认为这是最简单的方法这似乎是一个糟糕的设计。如果您是从命令调用,请使用某种不可知的输入,或者,如果要执行的操作不同,请使用某种装饰器来实现基本功能,并对web请求和命令执行实际操作。我们只需要在调试问题时这样做,这将是一件临时的事情,因此我不想真正改变平台的整个体系结构