Php 无法识别Symfony 3.4控制台命令定义
我正在将现有的Symfony 3.3应用程序升级到Symfony 3.4 尽管我已经在bundle的services.yml文件中定义了命令,但我还是收到了控制台命令自动注册警告。警告: [2017-12-14 12:22:19]php.INFO:不推荐用户:自动注册 命令“Dplh\dplhissesbundle\command\issuereportcommand”是 自Symfony 3.4以来已弃用,在4.0中不受支持。使用PSR-4 而是基于服务发现 Dplh/dplhissesbundle/Resources/config/services.yml中的条目:Php 无法识别Symfony 3.4控制台命令定义,php,symfony,symfony-3.4,Php,Symfony,Symfony 3.4,我正在将现有的Symfony 3.3应用程序升级到Symfony 3.4 尽管我已经在bundle的services.yml文件中定义了命令,但我还是收到了控制台命令自动注册警告。警告: [2017-12-14 12:22:19]php.INFO:不推荐用户:自动注册 命令“Dplh\dplhissesbundle\command\issuereportcommand”是 自Symfony 3.4以来已弃用,在4.0中不受支持。使用PSR-4 而是基于服务发现 Dplh/dplhissesbun
services:
Dplh\DplhIssuesBundle\Command\IssuesReportCommand:
public: true
tags: ['console.command']
calls:
- [ saveDependencies, [ '@logger' ]]
我确信services.yml文件正在由Symfony处理,因为如果我故意在其中创建语法错误,Symfony会报告该文件包含无效的YAML。最终找到了它。
在另一个捆绑包的services.yml文件中存在对Dplh\dplhissesbundle\Command\issuereportcommand类的引用(我敢肯定,复制/粘贴错误)
删除该引用将删除错误。是否将其移出
命令
目录?(如果您仍在使用3.4,它会在其中找到并投诉。)我还有其他私有捆绑包,它们的命令目录包含在services.yml文件中定义的命令,Symfony不会投诉它们。好吧,如果您不想把它移走,您需要为命令指定一个名称,以便实际发生延迟加载:标记:{name:'console.command',command:'issues:report'}
。好的。在命令源中添加了$defaultName。已将标记更改为同时包含名称和命令。完全相同的结果。此外,还有一个问题,为什么它不抱怨其他bundle中的命令。Straw-grapping:dump autoload(理论:其他bundle在第一次通过时已正确配置,而这一个不需要——需要更正(完成)和缓存重置(挂起的dump autoload))。