chore: complete update
This commit is contained in:
106
src/Framework/Console/README.md
Normal file
106
src/Framework/Console/README.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# Console-Modul
|
||||
|
||||
Dieses Modul bietet eine flexible und benutzerfreundliche Konsolen-Schnittstelle für Ihre PHP-Anwendung. Es ermöglicht die Erstellung von CLI-Befehlen mit einfacher Eingabe- und Ausgabehandlung.
|
||||
|
||||
## Hauptkomponenten
|
||||
|
||||
### ConsoleApplication
|
||||
|
||||
Die zentrale Klasse zur Verwaltung und Ausführung von Konsolen-Befehlen.
|
||||
|
||||
```php
|
||||
$app = new ConsoleApplication('app', 'Meine Anwendung');
|
||||
$app->registerCommands(new MyCommands());
|
||||
$app->run($argv);
|
||||
```
|
||||
|
||||
### ConsoleCommand-Attribut
|
||||
|
||||
Verwenden Sie das `ConsoleCommand`-Attribut, um Methoden als Konsolenbefehle zu kennzeichnen:
|
||||
|
||||
```php
|
||||
class MyCommands
|
||||
{
|
||||
#[ConsoleCommand(name: 'hello', description: 'Gibt eine Begrüßung aus')]
|
||||
public function sayHello(ConsoleInput $input, ConsoleOutput $output): int
|
||||
{
|
||||
$name = $input->getArgument(0, 'Welt');
|
||||
$output->writeLine("Hallo, {$name}!", ConsoleColor::BRIGHT_GREEN);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### ConsoleInput und ConsoleOutput
|
||||
|
||||
Diese Klassen bieten Methoden für die Ein- und Ausgabe in der Konsole:
|
||||
|
||||
```php
|
||||
// Eingabe
|
||||
$name = $input->ask('Wie heißen Sie?');
|
||||
$confirm = $input->confirm('Fortfahren?', true);
|
||||
$option = $input->getOption('verbose');
|
||||
|
||||
// Ausgabe
|
||||
$output->writeSuccess('Operation erfolgreich!');
|
||||
$output->writeError('Fehler aufgetreten!');
|
||||
$output->writeInfo('Wussten Sie schon...');
|
||||
```
|
||||
|
||||
## Fortschrittsanzeigen
|
||||
|
||||
### ProgressBar
|
||||
|
||||
Zeigt eine Fortschrittsanzeige für Operationen mit bekannter Länge:
|
||||
|
||||
```php
|
||||
$total = count($items);
|
||||
$progress = new ProgressBar($output, $total);
|
||||
$progress->start();
|
||||
|
||||
foreach ($items as $item) {
|
||||
// Verarbeite $item
|
||||
$progress->advance();
|
||||
}
|
||||
|
||||
$progress->finish();
|
||||
```
|
||||
|
||||
### Spinner
|
||||
|
||||
Zeigt einen animierten Spinner für Operationen unbekannter Länge:
|
||||
|
||||
```php
|
||||
$spinner = new Spinner($output, 'Lade Daten...');
|
||||
$spinner->start();
|
||||
|
||||
// Ausführung der Operation
|
||||
do {
|
||||
// Arbeit ausführen
|
||||
$spinner->update();
|
||||
} while (!$finished);
|
||||
|
||||
$spinner->success('Daten erfolgreich geladen!');
|
||||
```
|
||||
|
||||
## Beispiele
|
||||
|
||||
Sehen Sie sich die Beispielklassen im `Examples`-Verzeichnis an, um mehr über die Verwendung der Komponenten zu erfahren:
|
||||
|
||||
- `ProgressBarExample`: Zeigt verschiedene Konfigurationen der Fortschrittsanzeige
|
||||
- `SpinnerExample`: Demonstriert die Verwendung von Spinnern mit verschiedenen Stilen
|
||||
|
||||
## Anpassung
|
||||
|
||||
Sie können die Anzeige anpassen, indem Sie benutzerdefinierte Formatierungen und Farben verwenden:
|
||||
|
||||
```php
|
||||
$progress->setFormat('%bar% %percent%%');
|
||||
$progress->setBarCharacters('█', '░', '█');
|
||||
|
||||
$spinner = new Spinner($output, 'Lade...', SpinnerStyle::BOUNCE);
|
||||
```
|
||||
|
||||
## Fehlerbehebung
|
||||
|
||||
Wenn Probleme mit der Anzeige auftreten, stellen Sie sicher, dass Ihr Terminal ANSI-Escape-Sequenzen unterstützt. Die meisten modernen Terminals tun dies, aber Windows-Terminals können Einschränkungen haben.
|
||||
Reference in New Issue
Block a user