Inhaltsverzeichnis
Wie kann ich Befehlsparameter und -optionen in der Symfony -Konsole behandeln?
Wie kann ich die Ausgabe in Symfony Console anzeigen?
Wie kann ich Fehler in der Symfony -Konsole umgehen?
Wie testet ich Befehle in Symfony Console?
Wie kann man Symfony Console im Symfony -Projekt verwenden?
Heim Backend-Entwicklung PHP-Tutorial Neuanleitung Symfony Console - CLI Php für Uneingeweihte!

Neuanleitung Symfony Console - CLI Php für Uneingeweihte!

Feb 10, 2025 pm 02:06 PM

Re-Introducing Symfony Console - CLI PHP for the Uninitiated!

Kernpunkte

  • Symfony Console ist ein eigenständiges Paket, das ein einfaches Framework zum Erstellen von Befehlszeilen -Tools bietet, die für sich wiederholende Aufgaben wie Datenmigration, Importierung oder Erstellung von Cron -Jobs nützlich sind.
  • Um einen neuen Befehl zu erstellen, muss die Datei ausführbar sein. Dies kann durch das Erstellen einer Konsolendatei im Projektstammverzeichnis erstellt werden, sicherstellen, dass die Datei ausführbar ist und die Konsolenanwendung definiert wird.
  • Sie können die Befehlsklasse von Symfony verwenden, um Befehle zu testen, die spezielle Eingangs- und Ausgabeklassen bereitstellen, um Befehle ohne die Befehlszeile zu testen.
  • Symfony Console wird mit Composer (dem Abhängigkeitsmanagement -Tool in PHP) installiert. Es bietet eine einfache API, um Befehle für Befehlszeilen zu erstellen und Farbanzeigen, Fortschrittsbalken, Tabellen und andere interaktive Funktionen der Ausgabe zu unterstützen.

Dieser Artikel wurde am 24. Mai 2017 aktualisiert und bietet eine umfassendere Einführung in dieses wichtige moderne Tool.


"Konsolenkomponente vereinfacht das Erstellen einer schönen und überprüfbaren Befehlszeilenschnittstelle." Dies ist die Begrüßungsnachricht, die wir sehen, wenn wir die Seite Symfony Console Component Tools besuchen.

Als Softwareentwickler müssen wir häufig Befehlszeilen -Tools verwenden. Diese Tools sind nützlich, wenn wir eine Art sich wiederholende Aufgaben ausführen müssen (z. B. Daten migrieren, Importe ausführen oder Cron -Jobs erstellen).

Re-Introducing Symfony Console - CLI PHP for the Uninitiated! Das Symfony Console Component Tool bietet uns ein einfaches Framework, um unsere eigenen Befehlszeilen -Tools zu erstellen.

Im Gegensatz zu vielen Komponenten in Symfony ist dies ein eigenständiges Paket, das von Laravels Handwerk und vielen anderen berühmten PHP -Paketen verwendet wird.

Um die Alternativen zur Symfony -Konsole zu erfahren, siehe unser Vergleichsartikel: Schlacht der PHP -Konsole!

Installation

composer require symfony/console
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Wichtige Informationen zum Komponisten finden Sie hier.

Erstellen Sie einen neuen Befehl

Um einen neuen Befehl zu erstellen, müssen wir sicherstellen, dass unsere Datei ausführbar ist. Lassen Sie uns dazu eine Konsolendatei im Projektstammverzeichnis erstellen. Diese Datei fungiert als unser Befehlsmanager.

Stellen Sie jetzt sicher, dass die Datei ausführbar ist.
touch console
Nach dem Login kopieren
Nach dem Login kopieren

Stellen Sie dann sicher, dass sich zu Beginn unserer Datei Shebang befindet. Shebang ist eine Abfolge von Zeichen (Daumenmarke, gefolgt von Ausrufezeichen), die am Anfang des Skripts erscheint. Wenn Shebang existiert, wechselt exec () in die ausführbare Datei, die nach dem Ausführen von Shebang angegeben wurde. In unserem Beispiel wird es als PHP -Skript ausgeführt.
chmod 755 console
Nach dem Login kopieren
Nach dem Login kopieren
Lassen Sie uns nach

unsere Konsolenanwendung definieren. Die erste Iteration unseres Befehlsmanagers sieht folgendermaßen aus:

Schauen wir uns genauer an. Zuerst laden wir automatisch alle Abhängigkeiten und importieren dann das Anwendungspaket aus der Konsolenkomponente. Danach erstellen wir eine neue Instanz der Anwendung und führen sie aus.
#!/usr/bin/env php

<?php require_once __DIR__ . '/vendor/autoload.php';

use Symfony\Component\Console\Application;

$app = new Application();
$app->run();
Nach dem Login kopieren
Nach dem Login kopieren

Wenn wir ./console verwenden, um das Skript auszuführen, sollten wir die folgende Hilfe -Nachricht erhalten:

Re-Introducing Symfony Console - CLI PHP for the Uninitiated!

Dies liegt daran, dass wir noch keine Befehle registriert haben, und wir haben gerade ihr grundlegendes Framework erstellt.

Erstellen wir unser Skript und registrieren Sie es in unserem neu erstellten Befehlsmanager.

Für dieses spezielle Beispiel werden wir zwei einfache Befehle implementieren: einen für Hashing -Zeichenfolgen und die andere, um zu bestätigen, dass der Hash zur angegebenen Zeichenfolge gehört.

wir werden den /src -Fordner unserer Hash.php -Klasse mit dem folgenden Inhalt platzieren:

composer require symfony/console
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Es ist Zeit, unsere Befehle zu erstellen. Erstellen wir eine neue PHP -Datei namens HashCommand.php.

Diese Klasse erweitert die Befehlsklasse von Symfony und implementieren Sie Konfigurationsmethoden. Diese Methoden sind für unsere Befehle von entscheidender Bedeutung, weil sie den Befehlen sagen, wie sie aussehen und sich verhalten.

Der von

ausgefüllte Befehl lautet wie folgt:

touch console
Nach dem Login kopieren
Nach dem Login kopieren

Im Abschnitt Konfiguration ist die SetName -Methode die Art und Weise, wie wir den Befehl aufrufen, setDescription ist die Beschreibung des Befehls, und Addargument ist die Anweisung, die wir erklären, dass der Befehl einen Parameter mit dem Namen Passwort akzeptiert und er erforderlich ist.

In dem Abschnitt Ausführen greifen wir über die Getargument -Funktion auf die Parameter zu und haben sie anschließend mit unserer Hash -Klasse. Schließlich verwenden wir die Schreibmethode von OutputInterface, um das Ergebnis auf den Bildschirm zu drucken.

Wenn wir unseren Befehl so ausführen, werden wir nichts sehen. Dies liegt daran, dass wir immer noch einen sehr wichtigen Schritt fehlen. Wir müssen unsere Befehle noch in der Konsole registrieren.

chmod 755 console
Nach dem Login kopieren
Nach dem Login kopieren

Nachdem Sie den Befehl in der Konsole registriert haben, führen wir ihn aus.

Wenn wir den Befehl ./console erneut ausführen, können wir sehen, dass wir jetzt einen neuen Befehl registriert haben.

Re-Introducing Symfony Console - CLI PHP for the Uninitiated!

lass es uns ausführen:

#!/usr/bin/env php

<?php require_once __DIR__ . '/vendor/autoload.php';

use Symfony\Component\Console\Application;

$app = new Application();
$app->run();
Nach dem Login kopieren
Nach dem Login kopieren

wir sehen das Endergebnis:

Re-Introducing Symfony Console - CLI PHP for the Uninitiated!

Hash ist das Ergebnis der Anwendung der PHP -Hash () -Methode auf eine SitePoint -Zeichenfolge.

Für die Hash -Bestätigungsfunktion werden wir dieselbe Methode anwenden, aber wir werden zwei Parameter anstelle von einem haben. Eine wird die Zeichenfolge sein, die bestätigt werden muss, und der andere wird der Hash -Wert sein, den wir überprüfen möchten.

Wir erstellen eine neue Befehlsdatei direkt neben der Hashcommand -Datei. Nennen wir es Bestätigkeitskommand.

<?php
namespace Hash;

class Hash {

    /**
     * 接收一个字符串密码并对其进行哈希处理。
     *
     * @param string $password
     * @return string $hash
     */
    public static function hash($password) {
        return password_hash($password, PASSWORD_DEFAULT);
    }

    /**
     * 验证哈希是否与给定的密码相对应
     *
     * @param string $password
     * @param string $hash
     * @return boolean 如果哈希是从密码生成的
     */
    public static function checkHash($string, $hash) {
        if (password_verify($string, $hash)) {
            return true;
        }
        return false;
    }

}
Nach dem Login kopieren

Registrieren Sie den Befehl in der Konsole.

<?php
namespace Hash;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Formatter\OutputFormatterStyle;

use Hash\Hash;

class HashCommand extends Command {

    protected function configure() {
        $this->setName("Hash:Hash")
                ->setDescription("使用Bcrypt对给定字符串进行哈希处理。")
                ->addArgument('Password', InputArgument::REQUIRED, '你想要哈希什么?');
    }

    protected function execute(InputInterface $input, OutputInterface $output) {

        $hash = new Hash();
        $input = $input->getArgument('Password');

        $result = $hash->hash($input);

        $output->writeln('你的密码哈希值:' . $result);

    }

}
Nach dem Login kopieren

testen

In Bezug auf das Testen bietet uns Symfony einige bequeme Werkzeuge. Die nützlichste ist die Befehlsklasse, da sie spezielle Eingangs- und Ausgabeklassen bereitstellt, um unsere Befehle ohne die Befehlszeile zu testen.

Verwenden wir die CommandTester -Klasse, um einen Test für unseren Befehl Hash: Hash zu implementieren.

Erstellen wir zuerst einen /src Ordner auf dem gleichen Niveau wie unser. /tests

Erstellen wir dann unsere Testklasse darin und nennen Sie es hashcommandtest.php:

composer require symfony/console
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Wir laden unsere Befehle zuerst mit der Anwendungsklasse. Dann instanziieren wir einen neuen Kommando. Mit COMPORTTESTER können wir konfigurieren, wie wir unsere Befehle aufrufen möchten. Der letzte Schritt besteht darin, die Methode GetDisplay () zu verwenden, um das Ausführungsergebnis mit dem erwarteten Ergebnis zu vergleichen.

Die Methode

getDisplay () speichert das Ergebnis unserer Befehlsausführung, genau wie wir in der Befehlszeile sehen.

Schlussfolgerung

Wir haben gerade zwei verschiedene Befehle mit der Symfony -Konsolenkomponente erstellt. Wir sehen auch eine gute Möglichkeit, diese Befehle zu testen. Ich schlage vor, Sie betrachten die verschiedenen Optionen und Funktionen der Komponenten und geben uns im Kommentarbereich unten ein Feedback zu Ihrem Experiment.

Möchten Sie weiter fortgeschrittene Tutorials auf Symfony Console auf SitePoint sehen? Bitte sagen Sie es uns!

Der gesamte Code, den wir in diesem Artikel geschrieben haben, finden Sie in GitHub.

Symfony Console FAQ

Wie installiere ich Symfony Console?

Symfony Console ist eine Komponente des Symfony -Frameworks, das mit Composer (dem Abhängigkeitsmanagement -Tool in PHP) installiert werden kann. Um Symfony Console zu installieren, müssen Sie den folgenden Befehl im Terminal ausführen:

. In diesem Befehl wird die Symfony Console -Komponente in Ihr Projekt heruntergeladen und installiert. composer require symfony/console

Was sind die Hauptfunktionen der Symfony -Konsole?

Symfony Console bietet eine einfache API, um Befehlszeilen zu erstellen. Diese Befehle können für Cron -Jobs, Migrationen, Importe oder jeden anderen Aufgabentyp verwendet werden, der über die Befehlszeile ausgeführt werden kann. Es unterstützt auch Farbanzeigen, Fortschrittsbalken, Tabellen und andere interaktive Funktionen des Ausgangs.

Wie erstelle ich einen neuen Befehl in Symfony Console?

Um einen neuen Befehl zu erstellen, müssen Sie eine neue Klasse erstellen, die die SymfonyComponentConsoleCommand -Klasse erweitert. In dieser Klasse definieren Sie den Namen, die Beschreibung, die Parameter und die Optionen des Befehls in der Konfigurationsmethode. Die Ausführungsmethode enthält die Logik des Befehls.

Wie führe ich Befehle in Symfony Console aus?

Um den Befehl auszuführen, müssen Sie das Skript

gefolgt vom Namen des Befehls verwenden. Wenn Sie beispielsweise einen Befehl namens bin/console haben, können Sie ihn mit dem folgenden Befehl ausführen: app:my-command. bin/console app:my-command

Wie verwendet ich Symfony Console für die Datenbankmigration?

Symfony -Konsole kann in Verbindung mit der Doktrin (der Datenbankabstraktionschicht in Symfony) verwendet werden, um Datenbankmigrationen zu verwalten. Sie können einen neuen Befehl erstellen, der die erforderlichen SQL -Abfragen zur Migration Ihrer Datenbank ausführt.

Wie kann ich Befehlsparameter und -optionen in der Symfony -Konsole behandeln?

Befehlsparameter und -optionen können in der Methode der Konfiguration der Befehlsklasse definiert werden. Sie können das Getargument- und GetOption -Methoden verwenden, um die Werte dieser Parameter und Optionen in der Ausführungsmethode abzurufen.

Wie kann ich die Ausgabe in Symfony Console anzeigen?

Symfony Console bietet verschiedene Möglichkeiten, die Ausgabe anzuzeigen. Sie können mit der WriteLN -Methode eine Textzeile anzeigen, die Schreibmethode verwenden, um Text anzuzeigen (keine Zeilenumbrüche am Ende) und die Tabellenmethode zur Anzeige der Tabelle.

Wie kann ich Fehler in der Symfony -Konsole umgehen?

Fehler können behandelt werden, indem Ausnahmen vergeben werden. Symfony Console fängt diese Ausnahmen an und zeigt eine Fehlermeldung an. Sie können auch die Exit -Methode verwenden, um die Ausführung des Befehls zu stoppen und den Exit -Code zurückzugeben.

Wie testet ich Befehle in Symfony Console?

Symfony Console bietet eine Befehlsklasse, mit der Befehle getestet werden können. Sie können diese Klasse verwenden, um Befehle mit spezifischen Parametern und Optionen auszuführen und den Ausgangs- und Beenden -Code zu gründen.

Wie kann man Symfony Console im Symfony -Projekt verwenden?

Im Symfony -Projekt können Sie das Skript bin/console verwenden, um Befehle auszuführen. Sie können auch Ihre eigenen Befehle erstellen, indem Sie eine neue Klasse erstellen, die die SymfonyComponentConSolecommand -Klasse im Verzeichnis src/Command erweitert.

Das obige ist der detaillierte Inhalt vonNeuanleitung Symfony Console - CLI Php für Uneingeweihte!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1663
14
PHP-Tutorial
1266
29
C#-Tutorial
1238
24
Erklären Sie verschiedene Fehlertypen in PHP (Hinweis, Warnung, tödlicher Fehler, analysieren Sie Fehler). Erklären Sie verschiedene Fehlertypen in PHP (Hinweis, Warnung, tödlicher Fehler, analysieren Sie Fehler). Apr 08, 2025 am 12:03 AM

Es gibt vier Hauptfehlertypen in PHP: 1. Nichts: Das geringste unterbrochen das Programm nicht, wie z. B. Zugriff auf undefinierte Variablen; 2. Warnung: Ernst als Bekanntmachung, wird das Programm nicht kündigen, z. B. keine Dateien; 3. FatalError: Das schwerwiegendste wird das Programm beenden, z. 4. Parseerror: Syntaxfehler verhindern, dass das Programm ausgeführt wird, z. B. das Vergessen, das End -Tag hinzuzufügen.

PHP und Python: Vergleich von zwei beliebten Programmiersprachen PHP und Python: Vergleich von zwei beliebten Programmiersprachen Apr 14, 2025 am 12:13 AM

PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.

Erklären Sie sicheres Kennwort -Hashing in PHP (z. B. password_hash, password_verify). Warum nicht MD5 oder SHA1 verwenden? Erklären Sie sicheres Kennwort -Hashing in PHP (z. B. password_hash, password_verify). Warum nicht MD5 oder SHA1 verwenden? Apr 17, 2025 am 12:06 AM

In PHP sollten die Funktionen für Passwort_Hash und passwart_verify verwendet werden, um sicheres Passwort -Hashing zu implementieren, und MD5 oder SHA1 sollte nicht verwendet werden. 1) Passwort_hash generiert einen Hash, der Salzwerte enthält, um die Sicherheit zu verbessern. 2) Passwort_Verify prüfen Sie das Passwort und sicherstellen Sie die Sicherheit, indem Sie die Hash -Werte vergleichen. 3) MD5 und SHA1 sind anfällig und fehlen Salzwerte und sind nicht für die Sicherheit der modernen Passwort geeignet.

PHP in Aktion: Beispiele und Anwendungen in realer Welt PHP in Aktion: Beispiele und Anwendungen in realer Welt Apr 14, 2025 am 12:19 AM

PHP wird in E-Commerce, Content Management Systems und API-Entwicklung häufig verwendet. 1) E-Commerce: Wird für die Einkaufswagenfunktion und Zahlungsabwicklung verwendet. 2) Content -Management -System: Wird für die Erzeugung der dynamischen Inhalte und die Benutzerverwaltung verwendet. 3) API -Entwicklung: Wird für die erholsame API -Entwicklung und die API -Sicherheit verwendet. Durch Leistungsoptimierung und Best Practices werden die Effizienz und Wartbarkeit von PHP -Anwendungen verbessert.

Was sind HTTP -Anforderungsmethoden (erhalten, posten, setzen, löschen usw.) und wann sollte jeder verwendet werden? Was sind HTTP -Anforderungsmethoden (erhalten, posten, setzen, löschen usw.) und wann sollte jeder verwendet werden? Apr 09, 2025 am 12:09 AM

Zu den HTTP -Anforderungsmethoden gehören GET, Post, Put und Löschen, mit denen Ressourcen erhalten, übermittelt, aktualisiert und gelöscht werden. 1. Die GET -Methode wird verwendet, um Ressourcen zu erhalten, und eignet sich für Lesevorgänge. 2. Die Post -Methode wird verwendet, um Daten zu übermitteln und häufig neue Ressourcen zu erstellen. 3. Die Put -Methode wird zum Aktualisieren von Ressourcen verwendet und eignet sich für vollständige Updates. V.

PHP: Eine Schlüsselsprache für die Webentwicklung PHP: Eine Schlüsselsprache für die Webentwicklung Apr 13, 2025 am 12:08 AM

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7

Erklären Sie den Unterschied zwischen Selbst ::, Parent :: und static :: in Php OOP. Erklären Sie den Unterschied zwischen Selbst ::, Parent :: und static :: in Php OOP. Apr 09, 2025 am 12:04 AM

In Phpoop bezieht sich Self :: auf die aktuelle Klasse, Eltern :: Bezieht sich auf die Elternklasse, static :: wird für die späte statische Bindung verwendet. 1.self :: wird für statische Methoden und konstante Aufrufe verwendet, unterstützt jedoch keine späte statische Bindung. 2.PARENT :: wird für Unterklassen verwendet, um übergeordnete Klassenmethoden aufzurufen, und auf private Methoden können nicht zugegriffen werden. 3.Static :: unterstützt die verspätete statische Bindung, geeignet für Vererbung und Polymorphismus, kann jedoch die Lesbarkeit des Codes beeinflussen.

Wie kann PHP -Datei sicher sicher hochladen? Wie kann PHP -Datei sicher sicher hochladen? Apr 10, 2025 am 09:37 AM

PHP überlädt Datei -Hochladen über die Variable $ \ _ Dateien. Zu den Methoden zur Sicherstellung gehören: 1. Upload -Fehler, 2. Dateityp und -größe überprüfen, 3.. Dateiüberschreibung verhindern, 4. Verschieben von Dateien auf einen dauerhaften Speicherort.

See all articles