2017-12-14 1 views
2

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.

+0

Verschieben Sie es aus dem 'Command'-Verzeichnis? (Wenn Sie immer noch 3.4 verwenden, werden die darin gefunden und sich beschweren.) – bishop

+0

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. –

+0

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

Antwort

0

Endlich gefunden. Es gab einen Verweis auf die Dplh \ DplhIssuesBundle \ Command \ IssuesReportCommand-Klasse in der services.yml-Datei eines anderen Pakets (Kopieren/Einfügen-Fehler, da bin ich mir sicher).

Durch Entfernen dieser Referenz wurde der Fehler behoben.