abstract class Command extends Alvine implements Definition

Ein Befehl stellt ein Argument das Ihn auslöst und die verfügbaren Optionen bereit. Über die onMatch-Methoden der Argumente und Methoden wird das Verhalten des Befehls gesteuert.

// Schalteroption (boolean) mit dem Namen --myoption und dem Alias -o
$myOption = new \Alvine\Application\Console\Option\Boolean('myoption','o');
// Darf einmal auftreten
$myOption->setLimitCount(1);
// Hat einen Hilfetext
$myOption->setDescription('Beschreibung');
// Wird die Option aufgerufen so wird im Befehlsobjekt der Wert gesetzt
$myOption->onMatch = function(\Alvine\Application\Console\Option $option, $value) {
  // ... mache etwas mit $option und $value
};

$arg = new \Alvine\Application\Console\Argument('myCommand');

// Option hinzufügen
$arg->add($myOption);
$arg->onMatch = function(\Alvine\Application\Console\Argument $argument, \Alvine\Types\StringList $options, \Alvine\Types\StringList $global) {
  // ... mache etwas mit $argument, $options, $global
};
$arg->setDescription('Mein Befehl');

Ein Befehl bearbeitet massgeblich die onMatch() Methoden der Argumente und Optionen.

Application -> ArgumentParser: parse()
ArgumentParser -> Argument: hasPosition()
ArgumentParser -> Argument: isRequired()
ArgumentParser -> Argument: execute()
Argument -> OptionParser: add($option)
OptionParser -> Option: getName()
OptionParser -> Option: getAlias()
OptionParser -> Option: isRequired()
OptionParser -> Option: execute()
Option -> Option: onMatch($value)
note right: Die definierte Funktion besitzt als\nzusaetlichen Parameter die Option\nund ist definiert als\n onMatch($option, $value)
Argument -> OptionParser: parse()
Argument -> Argument: onMatch($options, $global)
note right: Die definierte Funktion besitzt als\nzusaetlichen Parameter das Argument\nund ist definiert als\n onMatch($argument, $options, $global)

Properties

protected Assembly $assembly
protected bool $verbose
protected bool $debug
protected File $output
protected Logger $logger

Methods

__construct(Assembly $assembly)

Neuer Befehl

setVerbose(bool $flag)

No description

setDebug(bool $flag)

No description

setOutput(string $path)

Ausgabe

write(string $text)

Text ausgeben (ersetzen von lokalisierten Zeichenketten)

writeRaw(string $text)

Text ausgeben

writeLine(string $text = '', Color $foreground = null, Color $background = null)

Text zeilenweise Ausgeben (ersetzen von lokalisierten Zeichenketten)

writeDebug(string $text)

Debug ausgeben

writeLineDelimiter()

No description

writeVerbose(string $text)

Debug ausgeben

getIncludeLibOption()

Stellt die neue Option include-lib zur Verfügung.

enableConsoleLogging(string $logger = null)

No description

Argument
getArgument()

Argument

getTerminal()

No description

string
getText(string $text, string $default = null, string $pluralKey = null)

Lokalisierten Text holen

string
replaceI18N(string $content, string $quoteCharList = null)

Internationalisierung

Details

at line 113
__construct(Assembly $assembly)

Neuer Befehl

Parameters

Assembly $assembly Anwendung

at line 134
Command setVerbose(bool $flag)

Parameters

bool $flag

Return Value

Command

at line 145
Command setDebug(bool $flag)

Parameters

bool $flag

Return Value

Command

at line 157
Command setOutput(string $path)

Ausgabe

Parameters

string $path

Return Value

Command

at line 171
Command write(string $text)

Text ausgeben (ersetzen von lokalisierten Zeichenketten)

Parameters

string $text

Return Value

Command

at line 191
Command writeRaw(string $text)

Text ausgeben

Parameters

string $text

Return Value

Command

at line 212
Command writeLine(string $text = '', Color $foreground = null, Color $background = null)

Text zeilenweise Ausgeben (ersetzen von lokalisierten Zeichenketten)

Parameters

string $text
Color $foreground
Color $background

Return Value

Command

at line 232
Command writeDebug(string $text)

Debug ausgeben

Parameters

string $text

Return Value

Command

at line 255
Command writeLineDelimiter()

Return Value

Command

at line 272
Command writeVerbose(string $text)

Debug ausgeben

Parameters

string $text

Return Value

Command

at line 287
Option getIncludeLibOption()

Stellt die neue Option include-lib zur Verfügung.

Return Value

Option

at line 302
Command enableConsoleLogging(string $logger = null)

Parameters

string $logger

Return Value

Command

at line 332
abstract Argument getArgument()

Argument

Liefert das Argument das diesen Befehl auslöst zurück. Soll dies der zentrale Befehl sein, so muss der Name des zurückgegebenen Arguments.

Return Value

Argument

at line 338
Terminal getTerminal()

Return Value

Terminal

at line 363
string getText(string $text, string $default = null, string $pluralKey = null)

Lokalisierten Text holen

Beispiele wenn der Schlüssel nicht gefunden wird:

// Lokalisierung mit Default-Wert
Presenter::getText('my.key::name=Hans', 'Hallo!');
-> Hallo!

// Wird kein Default übergeben wird der Schlüssel ausgegeben
Presenter::getText('my.key::name=Hans');
-> my.key::name=Hans

Parameters

string $text Textvorlage in der Form Schlüssel::key1=value1::key2=value2....
string $default Defaultwert
string $pluralKey Name des Schlüssels der Mehrzahlregel

Return Value

string lokalisierter Text

at line 394
string replaceI18N(string $content, string $quoteCharList = null)

Internationalisierung

Die Platzhalter müssen mit i18n anfangen:

i18n{mykeytoreplace}

Die Eigenschaft muss dann mit dem Schlüssel angelegt werden:

mykeytoreplace=Text

In der Anwendungskonfiguration kann der Schlüssel application.web.i18n.showkeys auf true gesetzt werden.

Wird die Zeichenkette $quoteCharList übergeben, so werden alle Zeichen die darin enthalten sind mit einem Backslash versehen. Diese Funktion verwendet die PHP Version \addcslashes

Parameters

string $content Inhalt
string $quoteCharList Quote

Return Value

string