Ich aktualisiere eine vorhandene Symfony 3.3-Anwendung auf Symfony 3.4.Symfony 3.4 Konsolenbefehlsdefinition wird nicht erkannt
Ich erhalte eine automatische Warnungsmeldung des Konsolenbefehls trotz der Tatsache, dass ich den Befehl in der services.yml Datei des Bündels definiert habe. Die Warnung:
[2017.12.14 12.22.19] php.INFO: User Deprecated: Auto-Registrierung von der Befehl "Dplh \ DplhIssuesBundle \ Command \ IssuesReportCommand" ist seit Symfony veraltet 3.4 und wird in 4.0 nicht unterstützt. Verwenden Sie stattdessen die PSR-4 basierte Diensteerkennung.
Der Eintrag in Dplh/DplhIssuesBundle/Ressourcen/config/services.yml:
services:
Dplh\DplhIssuesBundle\Command\IssuesReportCommand:
public: true
tags: ['console.command']
calls:
- [ saveDependencies, [ '@logger' ]]
Ich bin sicher, dass die services.yml Datei, da von Symfony verarbeitet wird, wenn ich einen Syntaxfehler erzeugen absichtlich Darin meldet Symfony, dass die Datei ungültige YAML enthält.
Verschieben Sie es aus dem 'Command'-Verzeichnis? (Wenn Sie immer noch 3.4 verwenden, werden die darin gefunden und sich beschweren.) – bishop
Ich habe andere private Bundles, die Befehlsverzeichnisse mit den Befehlen haben, die in ihren services.yml-Dateien definiert sind, und Symfony beschwert sich nicht über sie. –
In Ordnung, wenn Sie es nicht wegbringen möchten, müssen Sie dem Befehl einen Namen geben, damit das Lazy Loading tatsächlich passieren kann: 'tags: {name: 'console.command', command: 'issues: report "}". Siehe https://symfony.com/doc/current/console/commands_as_services.html – bishop