Heim > Artikel > Backend-Entwicklung > So erstellen Sie schnell Befehlszeilenanwendungen mit PHP
Wenn Sie ein Web
Entwicklungsingenieur sind, müssen Sie PHP
verwendet haben, um viele Web
Anwendungen zu entwickeln. Aber wissen Sie, wie Sie mit PHP
schnell eine Befehlszeilenanwendung (Tool) erstellen? Im Folgenden zeige ich Ihnen, wie Sie mit PHP
und einem berühmten Composer
-Erweiterungspaket – Symphony/Console – eine Befehlszeilenanwendung erstellen .
Symphony/Console ist ein Composer
Erweiterungspaket, das mit PHP
verwaltet wird und den Prozess der Erstellung einer schönen, testbaren PHP
Befehlszeilenanwendung vereinfacht, die sofort einsatzbereite Funktionen bietet, wie z (optionale/erforderliche) Parameterspezifikation und Optionsspezifikation (unter Verwendung des -
-Symbols). Beginnen wir also gemeinsam mit der Erstellung unserer Anwendung.
Wie üblich werden wir eine „Hello World“-Konsolenanwendung erstellen, diese jedoch leicht modifizieren, sodass sie eine benutzerdefinierte Begrüßung (anstelle von „Hello“) unterstützt und jemanden nach Belieben begrüßen kann (anstelle von „World“).
stellt uns einen separaten greet
(Begrüßungs-)Befehl zur Verfügung, den wir für die Interaktion mit dem App-Programm verwenden Interaktion.
greet
kann einen optionalen Parameter (name
) akzeptieren, um die Person auszudrucken, die begrüßt wird (Standard ist Welt).
greet
kann eine Option (--say
) akzeptieren, um die Begrüßung zu ändern (Standard ist Hallo).
Wenn wir Parameter oder Optionen angeben, gibt das Programm standardmäßig eine Hello World
-Meldung aus.
Erstellen Sie ein neues Verzeichnis für unser Projekt und cd
geben Sie es ein:
mkdir hello-world-app && cd hello-world-app
Verwenden Sie Composer, um die Konsolenkomponente in unser Projekt zu integrieren
composer require symfony/console
Erstellen Sie dann einen Einstiegspunkt für Ihre Anwendung, die PHP-Erweiterung Nicht erforderlich, da wir diese Datei ausführbar machen und die Umgebung in der Datei selbst angeben.
touch HelloWorld chmod +X HelloWorld
Fügen Sie den folgenden Code zur HelloWorld
-Datei hinzu (ich werde jede Zeile später mit Anmerkungen versehen) und führen Sie HelloWorld
diese Anwendung in Ihrem Terminal aus.
#!/usr/bin/env php <?php require __DIR__.'/vendor/autoload.php'; use Symfony\Component\Console\Application; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; (new Application('Hello World', '1.0.0')) ->register('greet') ->addArgument('name', InputArgument::OPTIONAL, 'Name of the person') ->addOption('say', null, InputOption::VALUE_REQUIRED, 'Custom greeting') ->setCode(function (InputInterface $input, OutputInterface $output) { $name = $input->getArgument('name'); $greeting = $input->getOption('say'); if (!empty($name) && !empty($greeting)) { return $output->writeln("<info>$greeting $name!</info>"); } else if (!empty($name)) { return $output->writeln("<info>Hello $name!</info>"); } else if (!empty($greeting)) { return $output->writeln("<info>$greeting World!</info>"); } else { return $output->writeln("<info>Hello World!</info>"); } }) ->getApplication() ->run();
Sehen Sie, Sie haben Ihr eigenes HelloWorld
Konsolenprogramm
wenn nichts angegeben ist. Beim Befehl gibt HelloWorld einen Bildschirm mit Informationen aus Standardmäßig bietet die Komponente
Symfony Console
mehrere Optionen und Befehle, die sofort für die Anwendung verfügbar sind, wie z. B. help
, list
und --version
OK, werfen wir einen Blick auf den Code in unserer HelloWorld
-Datei.
Wir führen autoload.php
ein, um das von composer
bereitgestellte automatische Laden und die verschiedenen von der Konsolenkomponente bereitgestellten Funktionen zu verwenden.
InputInterface
und OutputInterface
vereinfachen die Eingabe- und Ausgabefunktionen der Anwendung, InputArgument
und InputOption
helfen uns bei der Handhabung der an uns übergebenen Eingabe- und Ausgabefunktionen HelloWorld-Anwendung. Optionen und Parameter.
require __DIR__.'/vendor/autoload.php'; use Symfony\Component\Console\Application; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface;
symphony/console
Instanziieren Sie eine neue Anwendung mit Namen HelloWorld (v1.0.0)
und registrieren Sie unseren greet
-Befehl.
(new Application('Hello World', '1.0.0')) ->register('greet')
Wir fügen einen optionalen name
-Parameter (addArgument()
) hinzu und stellen eine kurze Beschreibung des Parameters bereit. Dann fügen wir mit dieser addOption()
-Methode eine say
-Option hinzu. Beachten Sie, dass Optionen immer optional sind. Sie können jedoch einen zu übergebenden Wert angeben oder ihn einfach als Referenz auf einen booleschen Bezeichner verwenden. Der Code in der Methode
->addArgument('name', InputArgument::OPTIONAL, 'Name of the person') ->addOption('say', null, InputOption::VALUE_REQUIRED, 'Custom greeting')
setCode()
enthält die Hauptlogik unserer Anwendung, die basierend auf den übergebenen Parametern und Optionen eine Begrüßung an das Terminal druckt. Wir hören auf das $input
-Objekt und verwenden die Hilfsmethoden getArgument()
und getOption()
, um die an greet
übergebenen Optionen und Parameter abzurufen. Dann müssen wir nur noch prüfen, welche Parameter oder Optionen übergeben werden, und entsprechend reagieren (mit das $output
-Objekt) gibt eine Begrüßung an die Konsolenausgabe aus. Diese writeln()
-Methode kann Text anhand von Tags formatieren, z. B. indem info
, error
und warning
in verschiedenen Farben ausgegeben werden.
->setCode(function (InputInterface $input, OutputInterface $output) { $name = $input->getArgument('name'); $greeting = $input->getOption('say'); if (!empty($name) && !empty($greeting)) { return $output->writeln("<info>$greeting $name!</info>"); } else if (!empty($name)) { return $output->writeln("<info>Hello $name!</info>"); } else if (!empty($greeting)) { return $output->writeln("<info>$greeting World!</info>"); } else { return $output->writeln("<info>Hello World!</info>"); } })
Zuletzt booten wir die 并调用他的
-Methode der Anwendung, sodass sie jederzeit bereit ist, greet
-Befehle zu empfangen und zu verarbeiten.
->getApplication() ->run();
greet
Keine Parameter und Optionen übergeben
greet
hat ein optionales name
-Argument
greet
Passen Sie Ihre Begrüßung mit der Option say
an
Schließlich greet
Begrüßungen anpassen und Personen begrüßen
Programmentwickler, nicht Beschränkt auf Sprache und Technologie, beschäftigt sich derzeit hauptsächlich mit PHP und Front-End-Entwicklung unter Verwendung von Laravel und VueJs. Eignung und Genügsamkeit sind die niemals endenden Ziele.Persönliche Website: https://www.linganmin.cn
Anmerkung des Übersetzers: Einige Links und Bildadressen in diesem Artikel wurden durch inländische Adressen ersetzt. Bitte korrigieren Sie mich, wenn es Übersetzungen gibt Fehler.
Viel Spaß beim Codieren!
Ursprüngliche Adresse: Wie erstelle ich eine Befehlszeilenanwendung mit PHP?
Wenn Sie ein Web
Entwicklungsingenieur sind, müssen SieViele PHP
Anwendungen entwickelt. Aber wissen Sie, wie Sie mit Web
schnell eine Befehlszeilenanwendung (Tool) erstellen? Im Folgenden zeige ich Ihnen, wie Sie mit PHP
und einem berühmten PHP
-Erweiterungspaket – Symphony/Console – eine Befehlszeilenanwendung erstellen . Composer
Erweiterungspaket, das mit Composer
verwaltet wird und den Prozess der Erstellung einer schönen, testbaren PHP
Befehlszeilenanwendung vereinfacht, die sofort einsatzbereite Funktionen bietet, wie z (optionale/erforderliche) Parameterspezifikation und Optionsspezifikation (unter Verwendung des PHP
-Symbols). Beginnen wir also gemeinsam mit der Erstellung unserer Anwendung. -
(Begrüßungs-)Befehl zur Verfügung, den wir für die Interaktion mit dem App-Programm verwenden Interaktion. greet
kann einen optionalen Parameter (greet
) akzeptieren, um die Person auszudrucken, die begrüßt wird (Standard ist Welt). name
kann eine Option (greet
) akzeptieren, um die Begrüßung zu ändern (Standard ist Hallo). --say
-Meldung aus. Hello World
geben Sie es ein: cd
mkdir hello-world-app && cd hello-world-app
composer require symfony/console
touch HelloWorld chmod +X HelloWorld
-Datei hinzu (ich werde jede Zeile später mit Anmerkungen versehen) und führen Sie HelloWorld
diese Anwendung in Ihrem Terminal aus.HelloWorld
#!/usr/bin/env php <?php require __DIR__.'/vendor/autoload.php'; use Symfony\Component\Console\Application; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; (new Application('Hello World', '1.0.0')) ->register('greet') ->addArgument('name', InputArgument::OPTIONAL, 'Name of the person') ->addOption('say', null, InputOption::VALUE_REQUIRED, 'Custom greeting') ->setCode(function (InputInterface $input, OutputInterface $output) { $name = $input->getArgument('name'); $greeting = $input->getOption('say'); if (!empty($name) && !empty($greeting)) { return $output->writeln("<info>$greeting $name!</info>"); } else if (!empty($name)) { return $output->writeln("<info>Hello $name!</info>"); } else if (!empty($greeting)) { return $output->writeln("<info>$greeting World!</info>"); } else { return $output->writeln("<info>Hello World!</info>"); } }) ->getApplication() ->run();
KonsolenprogrammHelloWorld
wenn nichts angegeben ist. Beim Befehl gibt HelloWorld einen Bildschirm mit Informationen aus Standardmäßig bietet die Komponente
mehrere Optionen und Befehle, die sofort für die Anwendung verfügbar sind, wie z. B. Symfony Console
, help
und list
--version
-Datei. HelloWorld
ein, um das von autoload.php
bereitgestellte automatische Laden und die verschiedenen von der Konsolenkomponente bereitgestellten Funktionen zu verwenden. composer
und InputInterface
vereinfachen die Eingabe- und Ausgabefunktionen der Anwendung, OutputInterface
und InputArgument
helfen uns bei der Handhabung der an uns übergebenen Eingabe- und Ausgabefunktionen HelloWorld-Anwendung. Optionen und Parameter. InputOption
require __DIR__.'/vendor/autoload.php'; use Symfony\Component\Console\Application; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface;
Instanziieren Sie eine neue Anwendung mit Namen symphony/console
und registrieren Sie unseren HelloWorld (v1.0.0)
-Befehl. greet
(new Application('Hello World', '1.0.0')) ->register('greet')
我们添加一个可选的name
参数(addArgument()
),并提供参数的简短描述。然后,我们使用这个addOption()
方法添加一个say
选项。请注意,选项始终是可选的,但您可以指定要传递的值,也可以仅仅将其用作指boolean标识。
->addArgument('name', InputArgument::OPTIONAL, 'Name of the person') ->addOption('say', null, InputOption::VALUE_REQUIRED, 'Custom greeting')
setCode()
方法中的代码会包含我们应用程序的主逻辑,它会根据传递的参数和选项打印一个问候语到终端。我们监听$input
对象,使用getArgument()
和getOption()
辅助方法获取传递给greet
的选项和参数,然后,我们只需要检查传递了哪些参数或者选项,并相应的(使用$output
对象)向控制台输出打印问候语。这个writeln()
方法可以根据标签格式化文本,比如输出不同颜色的info
,error
和warning
。
->setCode(function (InputInterface $input, OutputInterface $output) { $name = $input->getArgument('name'); $greeting = $input->getOption('say'); if (!empty($name) && !empty($greeting)) { return $output->writeln("<info>$greeting $name!</info>"); } else if (!empty($name)) { return $output->writeln("<info>Hello $name!</info>"); } else if (!empty($greeting)) { return $output->writeln("<info>$greeting World!</info>"); } else { return $output->writeln("<info>Hello World!</info>"); } })
最后我们引导应用程序并调用他的
方法,以便他做好随时接收和处理greet
命令。
->getApplication() ->run();
greet
不传递任何参数和选项
greet
有一个可选的name
参数
greet
使用say
选项自定义问候语
最后,greet
自定义问候语和问候人
相关推荐:
Das obige ist der detaillierte Inhalt vonSo erstellen Sie schnell Befehlszeilenanwendungen mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!