我的问题归结为我所做的事情本身是错误的还是我发现了一个错误。我根本不确定......
我做了什么?我们有一个基于Symfony 2.8的相对正常的应用程序。在那里,我们也使用通常的服务容器。此外,为了维护,我们定义了一组命令来调用命令行。在开发过程中,我在类的构造函数中添加了另一个参数,该类在其中一个命令中使用。
我现在遇到的问题是我无法正确部署它。当我只是替换代码并调用app/console cache:clear
从服务定义重新生成缓存的服务容器时,因为在启动时,内核尝试使用缓存的服务容器实例化所有命令。由于缓存服务不提供新参数,但更改的代码需要参数,启动失败。
进一步观察:
setContainer()
方法以检索其自己的依赖项。在这种情况下,一个命令无法从服务容器中检索其依赖项。我想知道setContainer()
是否过早 - 如果我将其推迟到execute()
,这只会在实际调用命令时失败但在调用cache:clear
时不会失败。 / LI>
cache:clear
命令的重点是什么?如果它不起作用?