Lektion 9.1: Die Konsole
Exponential hat mehr als hundert Kommandozeilenskripte. Die Konsole, php bin/php/console, findet sie alle, die des
Kernels und die jeder Erweiterung, beschreibt sie und führt sie über ihren Namen aus. In dieser Lektion finden sich
die Teilnehmenden darin zurecht, damit der eigene Befehl aus der nächsten Lektion neben denen des Kernels in der
Liste erscheint.
Auf einen Blick
| Kurs | Entwickler |
| Modul | Modul 9: Die Konsole und persistente Objekte |
| Dauer | 35 Minuten (10 Präsentation, 25 Übung) |
| Niveau | Einsteiger |
| Zielgruppe | Entwickler und Administratoren |
| Voraussetzungen | Modul 1 |
Lernziele
Nach dieser Lektion können die Teilnehmenden:
- mit
php bin/php/console listjeden Befehl oder die Befehle eines Namensraums auflisten; - die Hilfe eines Befehls auf drei Arten lesen;
- die Namensräume
exp:,shell:,bin:,ext:<ext>:undcron:erklären; - einen Cronjob-Teil mit
cron:<part>ausführen und die Crontab mitcrontab:listanzeigen; --allow-root-usererklären und warum Befehle als Benutzer der Website laufen sollten.
Hinweise für Trainer
So präsentieren Sie es
Quelle: Exponential Console.
list(3 Minuten).php bin/php/console listgibt jeden Befehl mit einer einzeiligen Beschreibung aus, gruppiert nach Namensraum;list exp,list shell,list cron,list ext:<ext>filtern.Namen (3 Minuten). Projizieren Sie die Tabelle:
Namensraum Führt aus exp:<name>bin/php/<name>.phpshell:<name>bin/shell/<name>.shbin:<name>bin/<name>.shoderbin/<name>.phpext:<ext>:<name>extension/<ext>/bin/php/<name>.phpoderextension/<ext>/bin/<name>.shcron:<part>einen Cronjob-Teil über runcronjobs.phpOhne Namensraum versucht die Konsole
exp:, dannshell:, dannbin:. Viele Befehle haben Aliasse, etwaexp:logsfürexp:explogs.Hilfe (2 Minuten).
help <command>,--help <command>und<command> --helpgeben die eigene Bedienungsanleitung des Skripts aus.Root (2 Minuten). Skripte verweigern ohne
--allow-root-userdie Ausführung als root; Dateien, die ein Skript als root schreibt, können eine Website lahmlegen, die als anderer Benutzer läuft.
Häufige Fragen
Ist ./console dasselbe? Ja, wenn Sie den Link ln -s bin/php/console console angelegt haben; er wird nicht
mitgeliefert.
Woher kommen die Beschreibungen? Aus einem Tag @description im Docblock des Skripts (Lektion 9.2).
Kann ich geplante Aufgaben sehen? php bin/php/console crontab:list gibt die System-Crontab des aktuellen
Benutzers aus; Setup > Cronjobs zeigt die Teile im Browser.
Stolperfallen
- Aus einem anderen Verzeichnis ausführen. Die Konsole muss aus dem Wurzelverzeichnis der Installation laufen,
sonst wird
autoload.phpnicht gefunden. - Befehle, die löschen. Manche Befehle entfernen Daten (
exp:trashpurge,exp:cleanupversions). Lesen Sie zuerst--helpund verwenden Sie--dry-run, wo es angeboten wird. - Tippfehler. Ein unbekannter Name gibt "Did you mean:" mit dem ähnlichsten Treffer aus.
Praktische Übung
Auf der Entwicklungsinstallation, aus ihrem Wurzelverzeichnis.
- Listen Sie jeden Befehl auf und zählen Sie sie:
php bin/php/console list | tail -3. - Listen Sie die Cronjob-Teile auf:
php bin/php/console list cron. - Listen Sie die Shell-Befehle auf:
php bin/php/console list shell. - Lesen Sie die Hilfe des Cache-Befehls auf zwei Arten:
php bin/php/console help exp:ezcacheundphp bin/php/console exp:ezcache --help. - Vertippen Sie sich absichtlich bei einem Namen:
php bin/php/console exp:ezcach. Lesen Sie den Vorschlag. - Suchen Sie den Befehl, der die Template-Syntax prüft, und den, der Templates kompiliert (Tipp:
list exp, suchen Sie nachtemplate). - Führen Sie den Befehl für Systeminformationen aus und lesen Sie die ersten Zeilen:
php bin/php/console exp:systeminfo | head -20. - Zeigen Sie die Version an:
php bin/php/console --version.
Erwartetes Ergebnis
- Schritt 1 endet mit der Anzahl der verfügbaren Befehle.
- Schritt 2 listet Teile wie
cron:frequentundcron:infrequentmit Beschreibungen auf. - Schritt 5 gibt
UNKNOWN COMMAND,Command "exp:ezcach" was not found.undDid you mean: exp:ezcacheaus. - Schritt 6:
exp:eztemplatecheckundexp:eztc. - Der Trainer fragt alle Teilnehmenden, welche Datei
ext:mysite_hello:latestausführen würde.
Quiz
- Welcher Befehl listet die Befehle einer Erweiterung auf?
- Was führt
exp:ezcacheaus? A.bin/shell/ezcache.shB.bin/php/ezcache.phpC.cronjobs/ezcache.phpD.kernel/ezcache.php - Nennen Sie zwei Arten, die Hilfe eines Befehls zu lesen.
- Warum verweigert ein Skript die Ausführung als root?
- Welche Datei führt
ext:mysite_hello:latestaus?
Antworten
php bin/php/console list ext:<ext>.- B.
bin/php/ezcache.php. - Zwei von
help <command>,--help <command>,<command> --help. - Dateien, die als root geschrieben werden, können eine Website lahmlegen, die als anderer Benutzer läuft;
--allow-root-userbestätigt, dass es Absicht ist. extension/mysite_hello/bin/php/latest.php.
Weiterführende Literatur
- Exponential Console: Namen, Optionen, Cronjob-Teile und Befehle von Erweiterungen.
- Die Cronjob-Konsole: die Browseransicht der Cronjob-Teile.
Verwandte Seiten
- Modul 9: Die Konsole und persistente Objekte
- Entwickler: Kursüberblick
- Trainer: hier beginnen
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.