Artikel
von
© Copyright bei Patrick Froch und easy Solutions IT. Dieses Werk ist lizenziert unter Creative Commons BY-NC-SA.

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.

Ausgabe

Zurück

Kommentare

Einen Kommentar schreiben

Bitte rechnen Sie 2 plus 7.