CLI Update
From Joomla! Documentation
CLI Update
Dokumentation
Einleitung
Das Ausführen einiger kleinerer Aufgaben auf dem Joomla!-Administrator-Dashboard kann umständlich und langsam erscheinen. Das CLI-Update bietet eine schnellere Möglichkeit, einige dieser Operationen über die Befehlszeile auszuführen. Es bietet eine Möglichkeit, Dinge schneller in die Joomla!-App zu integrieren. Damit können kleine Tests schneller durchgeführt werden, ohne den Prozess des Web-Dashboards durchlaufen zu müssen. Es ist eine CLI-Anwendung für das Joomla! CMS, die es dem Benutzer ermöglicht, Updates im CMS durchzuführen.
Diese Dokumentation zeigt, wie das CLI-Update verwendet werden kann und wie man seine Funktionalität als Entwickler erweitern kann.
Voraussetzungen
Wie bei allen anderen CLI (Befehlszeilen)-Apps, ist der Zugriff auf eine Joomla! Installation über die Kommandozeile erforderlich, um die durch das CLI Update zur Verfügung gestellten Werkzeuge zu benutzen. Möglicherweise könnte man einen SSH-Zugang zum Live-Server in Betracht ziehen.
Begriffe und Definitionen
- CLI - Command Line Interface
- SSH - Secure SHell
Das CLI Update benutzen
Um die Werkzeuge, die das CLI Update bietet, zu benutzen, wie bereits vorher erwähnt, wird der Zugriff auf das Kommandozeileninterface im Wurzelverzeichnis der Joomla! Installation benötigt. Oder, um es anders auszudrücken, musst du dich im Root-Verzeichnis deines Joomla! Content Management Systems (CMS) befinden, weil alle Kommandos von dort ausgeführt werden.
Allgemeine Kommandonutzung
In diesem Abschnitt wollen wir über die Nutzung von Kommandos sprechen, wir werden über verschiedene Kommandos, was diese sind und wie du sie einsetzen kannst. Wir werden auch etwas über vorhandene Kommandos im CLI Update herausfinden.
Vorhandene Kommandos
Die Anzahl der vorhandenen und verwendbaren Kommandos im CLI Update ist sehr umfangreich. Diese Kommandos sind gruppiert, je nach Bereich des Joomla! CMS, den sie berühren.
Nach Kern-Updates suchen
Das CLI Update bietet ein Kommando, um gezielt nach Updates für Joomla! zu suchen, dabei funktioniert das genau so, wie die Internetversion von com_joomlaupdate, es ruft Updates ab und meldet, ob ein Update vorhanden ist oder nicht. Um die Updateprüfung auszuführen, werden wir den Befehl wie gesagt aus dem Wurzelverzeichnis heraus erteilen.
php cli/joomla.php core:check-updates
Das Kommando wird ausgeführt und die Ausgabe zeigt eine verfügbare Updateversion an, falls vorhanden, oder sagt andernfalls, dass die derzeitige Installation auf dem neusten Stand ist.
Erweiterungskommandos
Die nächste Gruppe von Kommandos lassen uns die Erweiterungen im Joomla! Kern verwalten, das CLI Update wird mit Kommandos ausgeliefert, mit denen sich Erweiterungen installieren, in einer Liste aufführen und entfernen lassen.
Auflisten von installierten Erweiterungen
Dieses Kommando erlaubt uns alle installierten Erweiterungen in einer Liste aufzuführen, es kann auf zwei verschiedene Arten ausgeführt werden, diese sind:
- Allgemeine Auflistung: Listet alle installierten Erweiterungen auf, dass heißt alle Komponenten, Sprachen, Zusatzprogramme und Module werden zusammen aufgelistet, wenn der Befehl erteilt wird. So wird das Kommando aufgerufen:php cli/joomla.php extension:list
- Auflistung nach Typ: Die allgemeine Auflistung kann langwierig sein wenn man nach einer bestimmten Erweiterung innerhalb dieser riesigen Liste sucht, allerdings kann man die Anzahl auf ein erträgliches Maß senken, wenn man den Typ der Erweiterung genauer spezifiziert. Dies geschieht, indem an das Kommando eine Option angehängt wird. So wird das gemacht: php cli/joomla.php extension:list --type=language
Es werden hier nur sprachbasierte Erweiterungen aufgelistet, man kann auch noch genauer nach Modulen, Zusatzprogrammen und Komponenten suchen.
Eine Erweiterung installieren
Joomla! bietet die Installation einer Erweiterung über eine URL auf die gezippte Datei oder den Pfad zu dieser Datei, das CLI Update bietet auch dieses beiden Möglichkeiten, wie man das verwenden kann wird im folgenden beschrieben.
- Über eine URL installieren: Um eine Erweiterung über eine URL zu installieren, wollen wir das Kommando wie unten ausführen und ein Argument und eine Option an das extension:install Kommando anhängen. php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip Auf diese Art und Weise wird die com_patchtester Erweiterung heruntergeladen und installiert.
- Über eine Pfad installieren: Um eine Erweiterung über einen Pfad zu installieren, wird das selbe extension:install Kommando ausgeführt und das Argument für Pfade wie diesen genauer angegeben:php cli/joomla.php extension:install --path=/Users/bosunski/docs/com_pathtester.zip
Somit wird die Erweiterung geladen und die Installatioin wie erwartet durchgeführt.
Eine Erweiterung entfernen
Das letzte Kommando in dieser Kategorie ist das extension:remove Kommando. Es wird benutzt um Erweiterungen aus dem Joomla! CMS zu entfernen. Dieses Kommando verwendet die extension_id als Argument, man kann auch immer extension:list verwenden, um die Erweiterungs ID zu erfahren. Hier wird eine Erweiterung mit der ID 803 entfernt.
php cli/joomla.php extension:remove 803
Den Joomla! Kern auf den neusten Stand bringen
Ebenso sehr wie das CLI Update einen Befehl bietet um nach Updates zu suchen, bietet es darüber hinaus ein Kommando, ein Update durchzuführen falls vorhanden. Um ein Update auszuführen führen wir nur folgendes aus:
php cli/joomla.php core:update
Dieses Kommando führt ein Update des Joomla! Kerns durch und bringt es auf die neuste verfügbare Version.
Joomla! über das CLI installieren
Als nächstes folgt das core:install Kommando, welches die Installation des Joomla! CMS über das CLI ermöglicht. Das Kommando kann in zwei verschiedenen Modi arbeiten: Den interaktiven und den nicht-interaktiven Modus.
Interaktive Installation
Um eine frische Joomla! Installation mit Hilfe des interaktiven Modus zu erhalten werden wir einfach das extension:install Kommando so ausführen:
php cli/joomla.php extension:install
Der standardmäßige Installationsmodus wird gestartet und wird danach fragen, die Einstellungen, die benötigt werden, einzugeben. Erst wenn alle Auswahlmöglichkeiten eingegeben und bestätigt wurden, wird die Installation gestartet und Joomla! installiert.
Nicht-interaktive Installation
Der nächste Installationstyp ist der nicht-interaktve oder stille Modus. In diesem Modus wirst du nicht danach gefragt werden, alle Auswahlmöglichkeiten einzugeben. Stattdessen werden alle Installationsoptionen aus einer Datei gelesen. Das Kommando wird um eine Option ergänzt, die den Pfad zu der Datei angibt, aus der die Installationsoptionen ausgelesen werden, das sieht folgendermaßen aus:
php cli/joomla.php core:install --file=/path/to/config.json
Ein Beispiel für den Inhalt der config.json kann sein:
{
"language":"en-GB",
"site_name":"Joomla",
"admin_email":"email@example.com",
"admin_user":"user",
"admin_password":"password",
"db_type":"mysql",
"db_host":"localhost",
"db_user":"root",
"db_pass":"xcdxcx",
"db_name":"jtest",
"db_prefix":"efs0k_",
"db_old":"remove",
"helpurl":"https://joomla.org"
}
ODER als Muster einer config.ini
site_name="gsoc"
admin_email="user@example.com"
admin_user="user"
admin_password="secret"
db_type="mysql"
db_host="localhost"
db_user="root"
db_pass=""
db_name="joomla"
db_prefix="prefix_"
Die definierten Optionen werden geladen und valdiert, anschließend wird die Installation ausgeführt.
Kommandos die einer Konfiguration zugrunde liegen
Der nächste Satz Kommandos den wir betrachten ist für das Setzen und die Besichtigung von Konfigurationsoptionen innerhalb der Joomla! Installation:
Konfigurationen einstellen
Das CLI Update bietet einen Befehl, der den Wert einer bestehenden Option in der Konfiguration ändert. Unter Verwendung des config:get Kommandos kann man jede beliebige Konfigurationsoption, die sich innerhalb der configuration.php befindet, ändern. So wird dieses Kommando verwendet:
php cli/joomla.php config:set mailer=mail
Es ist sogar mögliche, viele Paare von Optionswerten wie diese hinzuzufügen:
php cli/joomla.php config:set mailer=mail fromname=Joomla! sitename="Joomla Site"
Auf diese Weise werden Optionen auf einmal geändert.
Konfigurationen erhalten
Als nächsten Befehl in dieser Kategorie sei das config:get Kommando genannt, wie der Name schon vermuten lässt liefert es den Wert einer Option der sich innerhalb der configuration.php befindet, ohne zusätzliches Argument zeigt es alle verfügbaren Optionen in tabellarischer Form an. Jetzt zu diesem Befehl:
php cli/joomla.php config:get sitename
Hier wird der Wert der Option sitename ausgegeben.
php cli/joomla.php config:get
Nun werden alle Werte der verfügbaren Optionen ausgeben.
Konfigurationen gruppiert erhalten
Das CLI Update fügt eine Option für den config:get Befehl hinzu, der es uns ermöglicht, logisch gruppierte Optionen zu erhalten, sagen wir zum Beispiel man möchte alle datenbankspezifischen Optionen oder alle E-Mail bezogenen Optionen anzeigen lassen. Um das zu erreichen bietet das CLI Update eine wählbare Möglichkeit, eine genauer spezifizierte Gruppe von Wahlmöglichkeiten anzeigen zu lassen, und so wird das gemacht:
php cli/joomla.php config:get --group=mail
Der Befehl verwendet die group Option und erhält den Wert mail. CLI Update unterstüzt derzeit die Gruppenwerte: mail, db und Sitzung (session).
Befehle für Webseite online und offline
Wie der Name schon suggeriert, erlauben es diese Kommandos eine von Joomla! betriebene Website flugs in den offline- oder online-Modus zu versetzen, so wird dieser Befehl verwendet:
php cli/joomla.php site:up
php cli/joomla.php site:down
Die zweite Instruktion versetzt die Website offline, während die erste Anweisung die Website online stellt.
Zum CLI Update als Entwickler beitragen
Mehr Instruktionen hinzufügen
Das CLI Update wird mit einigen Befehlen ausgeliefert, die hinzugefügt werden basierend auf der Notwendigkeit die die Zeit mit sich bringt. Wie auch immer, dem CLI Update können andere Kommandos einfach hinzugefügt werden, damit beschäftigt sich dieser Abschnitt, der ein Videotutorial (siehe unten) beinhaltet.
Andere Kommandos innhalb von Kommandoklassen aufrufen
Sollte es für der Fall sein, dass man einen Befehl, den man für das CLI Update schreiben will, es erfordert, dass ein bestehendes Kommando intern aufgerufen werden muss, so kann dies innerhalb einer anderen Befehlsklasse aus geschehen:
<?php
class RunHelloCommand extends AbstractCommand {
...
public function execute(): int {
$command = $this->getApplication()->getCommand('say:hello');
$code = $command->execute();
if($code === 0) {
// command ran successfully, do something
}
}
...
}
Hier versuchen wir, dass say:hello Kommando aufzurufen, dass in obigem Video erschaffen wurde.
Einige wichtige Sachen zum Recherchieren
- Symfony Style Dokumentation: How to Style a Console Command
- Eine CLI Anwendung mit Joomla 4 entwickeln J4.x:Writing A CLI Application