Contao 4: Konsolenbefehl erstellen (Update 05.2020)
Vor circa eineinhalb Jahren habe ich in einem Artikel beschrieben, wie man einen eigenen Befehl für die Symfony-Konsole erstellt. Bedauerlicher Weise hat das mühsam erworbene Wissen unter Contao 4 eine sehr geringe Haltbarkeit, so dass der Artikel schon wieder veraltet ist. Aus diesem Grund möchte ich heute beschreiben, wie es im Augenblick funktioniert.
Der original Artikel ist befindet sich unter Contao 4: Konsolenbefehl erstellen
Dependency Injection
Hier hat sich nichts geändert, wir laden die YAML-Datei mit der Konfiguration unseres Befehls. Falls hier noch weitere Dateien wie services.yml
oder listener.yml
geladen werden, muss die neue Datei zusätzlich geladen werden.
commands.yml
Hier gibt es die ersten Änderungen. Da das Ableiten der Command-Klasse von Contao\CoreBundle\Command\AbstractLockedCommand
als veraltet markiert ist, kann das Framework nicht mehr mit ["setFramework", ["@contao.framework"]]
injiziert werden. Es wird nun über die Construktor-Injection (Zeile 4) übergeben.
Klasse Command
Die Klasse erbt nun einfach von Symfony\Component\Console\Command\Command
, weshalb sich auch die configure
-Methode ändert. Das Framework wird an __construkt()
übergeben. In Zeile 14 wird der Name des Kommandos nun als Eigenschaft festgelegt. Die eigentliche Ausgabe des Demotextes findet in den Zeilen 34 und 35 statt.
Aufruf
Der Aufruf ist relativ gleich geblieben, nur dass ich dies Mal auf einen Parameter verzichtet habe.
vendor/bin/contao-console demo:testoutput
Die Ausgabe könnte dann in etwas wie folgt aussehen.
Kommentare
Einen Kommentar schreiben