Command
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
No description
Debug ausgeben
No description
Debug ausgeben
Stellt die neue Option include-lib zur Verfügung.
No description
Argument
No description
Lokalisierten Text holen
Internationalisierung
Details
at line 113
__construct(Assembly $assembly)
Neuer Befehl
at line 134
Command
setVerbose(bool $flag)
at line 145
Command
setDebug(bool $flag)
at line 157
Command
setOutput(string $path)
Ausgabe
at line 171
Command
write(string $text)
Text ausgeben (ersetzen von lokalisierten Zeichenketten)
at line 191
Command
writeRaw(string $text)
Text ausgeben
at line 212
Command
writeLine(string $text = '', Color $foreground = null, Color $background = null)
Text zeilenweise Ausgeben (ersetzen von lokalisierten Zeichenketten)
at line 232
Command
writeDebug(string $text)
Debug ausgeben
at line 255
Command
writeLineDelimiter()
at line 272
Command
writeVerbose(string $text)
Debug ausgeben
at line 287
Option
getIncludeLibOption()
Stellt die neue Option include-lib zur Verfügung.
at line 302
Command
enableConsoleLogging(string $logger = null)
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.
at line 338
Terminal
getTerminal()
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
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