Si vous êtes un Web
ingénieur de développement, alors vous devez avoir utilisé PHP
pour développer de nombreuses Web
applications. Mais savez-vous comment utiliser PHP
pour créer rapidement une application en ligne de commande (outil) ? Ci-dessous, je vais vous montrer comment utiliser PHP
et un célèbre package d'extension Composer
- Symphony/Console pour créer une application en ligne de commande. .
Symphony/Console est un package d'extension Composer
géré avec PHP
qui simplifie le processus de création d'une belle application en ligne de commande PHP
testable, qui fournit des fonctionnalités prêtes à l'emploi telles que (facultatif/obligatoire) spécification des paramètres et spécification des options (à l'aide du symbole -
). Alors commençons à construire notre application ensemble.
Comme d'habitude, nous allons créer une application console "Hello World", mais la modifierons légèrement pour qu'elle prenne en charge un message d'accueil personnalisé (au lieu de Hello) et puisse saluer quelqu'un à volonté (au lieu du monde).
nous fournit une commande greet
(salutation) distincte que nous utiliserons pour interagir avec le programme de l'application. interaction.
greet
peut accepter un paramètre facultatif (name
) pour imprimer la personne accueillie (la valeur par défaut est Monde).
greet
peut accepter une option (--say
) pour modifier le message d'accueil (la valeur par défaut est Bonjour).
Si nous fournissons des paramètres ou des options, le programme affichera un message Hello World
par défaut.
Créez un nouveau répertoire pour notre projet et cd
entrez-le :
mkdir hello-world-app && cd hello-world-app
Utilisez Composer pour amener le composant console dans notre projet
composer require symfony/console
Créez ensuite un point d'entrée pour votre application, l'extension PHP est non obligatoire car nous rendons ce fichier exécutable et spécifions l'environnement dans le fichier lui-même.
touch HelloWorld chmod +X HelloWorld
Ajoutez le code suivant au fichier HelloWorld
(j'annoterai chaque ligne plus tard), et exécutez HelloWorld
cette application dans votre terminal .
#!/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();
Écoutez, vous avez votre propre HelloWorld
programme de console
lorsque rien n'est spécifié Lors de la commande, HelloWorld affiche un écran d'informations en par défaut. Le composant
Symfony Console
nous fournit plusieurs options et commandes disponibles prêtes à l'emploi pour l'application, telles que help
, list
et --version
OK, jetons un œil au code dans notre HelloWorld
fichier.
Nous introduisons autoload.php
pour utiliser le chargement automatique fourni par composer
et les différentes fonctions fournies par le composant console.
InputInterface
et OutputInterface
rendront les fonctions d'entrée et de sortie de l'application simples, InputArgument
et InputOption
nous aideront à gérer les fonctions d'entrée et de sortie transmises à notre Application HelloWorld.Options et paramètres.
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
Instanciez une nouvelle application par son nom HelloWorld (v1.0.0)
et enregistrez notre commande greet
.
(new Application('Hello World', '1.0.0')) ->register('greet')
Nous ajoutons un paramètre facultatif name
(addArgument()
) et fournissons une brève description du paramètre. Ensuite, nous ajoutons une option addOption()
en utilisant cette méthode say
. Notez que les options sont toujours facultatives, mais vous pouvez spécifier une valeur à transmettre ou simplement l'utiliser comme référence à un identifiant booléen. Le code de la méthode
->addArgument('name', InputArgument::OPTIONAL, 'Name of the person') ->addOption('say', null, InputOption::VALUE_REQUIRED, 'Custom greeting')
setCode()
contiendra la logique principale de notre application, qui imprimera un message d'accueil au terminal en fonction des paramètres et des options transmises. Nous écoutons l'objet $input
et utilisons les méthodes d'assistance getArgument()
et getOption()
pour obtenir les options et les paramètres transmis à greet
. Ensuite, il nous suffit de vérifier quels paramètres ou options sont transmis et de répondre en conséquence (en utilisant. l'objet $output
) imprime un message d'accueil sur la sortie de la console. Cette méthode writeln()
peut formater le texte en fonction de balises, telles que la sortie info
, error
et warning
dans différentes couleurs.
->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>"); } })
Enfin, nous amorçons la méthode 并调用他的
de l'application afin qu'elle soit prête à recevoir et traiter les commandes greet
à tout moment.
->getApplication() ->run();
greet
Ne transmettant aucun paramètre ni option
greet
a un argument name
facultatif
greet
Personnalisez votre message d'accueil à l'aide de l'option say
Enfin, greet
Personnaliser les salutations et saluer les gens
Développeur de programme, non limité au langage et à la technologie, actuellement principalement engagé dans le développement PHP et front-end, en utilisant Laravel et VueJs. L'adéquation et la suffisance sont des objectifs sans fin.Site Web personnel : https://www.linganmin.cn
Note du traducteur : certains liens et adresses d'images dans cet article ont été remplacés par des adresses nationales. Veuillez me corriger s'il y a une traduction. erreurs.
Bon codage !
Adresse d'origine : Comment créer une application en ligne de commande en utilisant PHP ?
Si vous êtes un Web
ingénieur de développement, alors vous devez utiliserPHP
Développement de nombreuses Web
applications. Mais savez-vous comment utiliser PHP
pour créer rapidement une application en ligne de commande (outil) ? Ci-dessous, je vais vous montrer comment utiliser PHP
et un célèbre package d'extension Composer
- Symphony/Console pour créer une application en ligne de commande. .
Symphony/Console est un package d'extension Composer
géré avec PHP
qui simplifie le processus de création d'une belle application en ligne de commande PHP
testable, qui fournit des fonctionnalités prêtes à l'emploi telles que (facultatif/obligatoire) spécification des paramètres et spécification des options (à l'aide du symbole -
). Alors commençons à construire notre application ensemble.
Comme d'habitude, nous allons créer une application console "Hello World", mais la modifierons légèrement pour qu'elle prenne en charge un message d'accueil personnalisé (au lieu de Hello) et puisse saluer quelqu'un à volonté (au lieu du monde).
nous fournit une commande greet
(salutation) distincte que nous utiliserons pour interagir avec le programme de l'application. interaction.
greet
peut accepter un paramètre facultatif (name
) pour imprimer la personne accueillie (la valeur par défaut est Monde).
greet
peut accepter une option (--say
) pour modifier le message d'accueil (la valeur par défaut est Bonjour).
Si nous fournissons des paramètres ou des options, le programme affichera un message Hello World
par défaut.
Créez un nouveau répertoire pour notre projet et cd
entrez-le :
mkdir hello-world-app && cd hello-world-app
Utilisez Composer pour amener le composant console dans notre projet
composer require symfony/console
Créez ensuite un point d'entrée pour votre application, l'extension PHP est non obligatoire car nous rendons ce fichier exécutable et spécifions l'environnement dans le fichier lui-même.
touch HelloWorld chmod +X HelloWorld
Ajoutez le code suivant au fichier HelloWorld
(j'annoterai chaque ligne plus tard), et exécutez HelloWorld
cette application dans votre terminal .
#!/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();
Écoutez, vous avez votre propre HelloWorld
programme de console
lorsque rien n'est spécifié Lors de la commande, HelloWorld affiche un écran d'informations en par défaut. Le composant
Symfony Console
nous fournit plusieurs options et commandes disponibles prêtes à l'emploi pour l'application, telles que help
, list
et --version
OK, jetons un œil au code dans notre HelloWorld
fichier.
Nous introduisons autoload.php
pour utiliser le chargement automatique fourni par composer
et les différentes fonctions fournies par le composant console.
InputInterface
et OutputInterface
rendront les fonctions d'entrée et de sortie de l'application simples, InputArgument
et InputOption
nous aideront à gérer les fonctions d'entrée et de sortie transmises à notre Application HelloWorld.Options et paramètres.
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
Instancier une nouvelle application par son nom HelloWorld (v1.0.0)
et enregistrer notre commande 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
自定义问候语和问候人
相关推荐:
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!