Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

CLI-Skripte mit eZScript

Kommandozeilenwerkzeuge für eine Anwendung schreiben - der klassenbasierte Command mit script(), startup() und Optionen, das klassische eZScript-Muster, Ausgaben mit eZCLI, Siteaccess und Benutzer, Exit-Codes…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/creators/app-creators/cli-scripts.md

On this page

This page is a translation. Read the English original

CLI-Skripte mit eZScript

Diese Seite ist für Anwendungsentwickler, die Kommandozeilenwerkzeuge schreiben: Importe, Wartung, Berichte. Ein Skript startet den Kernel mit eZScript, liest Optionen, erledigt seine Arbeit und endet mit einem Status. Neue Skripte sind Klassen, die Exponential\Runnable\Command erweitern; die Konsole führt sie als ext:<ext>:<name> aus.

Setup, MCP-Server: die schreibgeschützten Werkzeuge, mit denen ein Assistent die Installation untersuchen kann
Setup, MCP-Server: die schreibgeschützten Werkzeuge, mit denen ein Assistent die Installation untersuchen kann

Inhalt

  1. Der klassenbasierte Befehl
  2. Das klassische Muster
  3. Ausgabe
  4. Siteaccess und Benutzer
  5. Sicherheitsregeln

Der klassenbasierte Befehl

Aus Befehle als Klassen:

<?php
// extension/expdemo/classes/runnable/commands/report.php
namespace Exponential\Command\Extension\Expdemo;

class Report extends \Exponential\Runnable\Command
{
    public function run()
    {
        $this->script( array( 'description' => "Writes the monthly report",
                              'use-session' => false, 'use-modules' => true, 'use-extensions' => true ) );
        $options = $this->startup( '[month:][dry-run]', '', array(
            'month'   => 'The month, YYYY-MM',
            'dry-run' => 'Show what would be written, write nothing' ) );

        $this->output( \expDemoReportService::build( $options['month'], !empty( $options['dry-run'] ) ) );
        $this->shutdown( 0 );
    }
}
#!/usr/bin/env php
<?php
// extension/expdemo/bin/php/report.php
require_once 'autoload.php';
\Exponential\Command\Extension\Expdemo\Report::main( __FILE__ );

php bin/php/console ext:expdemo:report --month=2026-10 --dry-run.

Das klassische Muster

Viele Skripte verwenden eZScript direkt, so wie update/common/scripts/6.0/createbookmarkviewtable.php:

require_once 'autoload.php';
$cli = eZCLI::instance();
$script = eZScript::instance( array( 'description' => 'What it does', 'use-session' => false,
                                     'use-modules' => true, 'use-extensions' => true ) );
$script->startup();
$options = $script->getOptions( '[file:][dry-run]', '', array( 'file' => 'The input file' ) );
$script->initialize();
// work
$script->shutdown( 0 );

getOptions() erhält eine Konfigurationszeichenkette ([name:] mit einem Wert, [name] als Schalter), Argumente und Hilfetexte; --help, -s/--siteaccess, --allow-root-user und die Debug-Optionen werden automatisch ergänzt.

Ausgabe

$cli->output(), $cli->notice(), $cli->warning(), $cli->error(); Farben schalten sich ab, wenn die Ausgabe umgeleitet wird. Enden Sie mit einer Zusammenfassungszeile und einem Exit-Code: shutdown( 0 ) für Erfolg, shutdown( 1 ) für einen Fehlschlag.

Siteaccess und Benutzer

  • -s <siteaccess> wählt die Einstellungen; Erweiterungen, die nur in diesem Siteaccess aktiv sind, brauchen das.
  • Der Benutzer ist anonym. Ein Skript, das Inhalte schreibt, meldet einen eigenen Benutzer an (eZUser::setCurrentlyLoggedInUser( $user, $user->id() )), niemals den gemeinsam genutzten Administrator.

Sicherheitsregeln

  • Ein --dry-run für jeden Befehl, der schreibt oder löscht.
  • Lesen Sie die Hilfe, bevor Sie Befehle anderer ausführen: Manche löschen ohne --help (exp:cleanupversions).
  • Nehmen Sie niemals Passwörter als Optionen entgegen (sie erscheinen in der Prozessliste); lesen Sie sie aus den Einstellungen oder der Umgebung.
  • Führen Sie Skripte als Benutzer des Webservers aus; Dateien, die root geschrieben hat, legen die Website später lahm.

Verwandte Seiten

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.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x