Maison  >  Article  >  développement back-end  >  Comment créer rapidement des applications en ligne de commande en utilisant PHP

Comment créer rapidement des applications en ligne de commande en utilisant PHP

小云云
小云云original
2017-12-18 16:15:011826parcourir

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).

Cette application Hello World aura la fonctionnalité suivante :

  1. nous fournit une commande greet (salutation) distincte que nous utiliserons pour interagir avec le programme de l'application. interaction.

  2. greet peut accepter un paramètre facultatif (name) pour imprimer la personne accueillie (la valeur par défaut est Monde).

  3. greet peut accepter une option (--say) pour modifier le message d'accueil (la valeur par défaut est Bonjour).

  4. Si nous fournissons des paramètres ou des options, le programme affichera un message Hello World par défaut.

Comment créer une application en ligne de commande en utilisant PHP

  • Créez un nouveau répertoire pour notre projet et cdentrez-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__.&#39;/vendor/autoload.php&#39;;
    
    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(&#39;Hello World&#39;, &#39;1.0.0&#39;))
          ->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 HelloWorldprogramme de console
Comment créer rapidement des applications en ligne de commande en utilisant PHP
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

Explication de le contenu de ce fichier magique

OK, jetons un œil au code dans notre HelloWorld fichier.

  1. 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;
  1. symphony/consoleInstanciez une nouvelle application par son nom HelloWorld (v1.0.0) et enregistrez notre commande greet.

    (new Application('Hello World', '1.0.0'))
        ->register('greet')
  2. 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')
  3. 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>");
        }
      })
  4. 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();

Jetons maintenant un coup d'œil à notre programme HelloWorld dans un exemple

  1. greetNe transmettant aucun paramètre ni option

Comment créer rapidement des applications en ligne de commande en utilisant PHP

  1. greet a un argument name facultatif

Comment créer rapidement des applications en ligne de commande en utilisant PHP

  1. greetPersonnalisez votre message d'accueil à l'aide de l'option say

Comment créer rapidement des applications en ligne de commande en utilisant PHP

  1. Enfin, greetPersonnaliser les salutations et saluer les gens

Comment créer rapidement des applications en ligne de commande en utilisant PHP


À propos de l'auteur

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 Webingénieur de développement, alors vous devez utiliserPHPDé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).

Cette application Hello World aura la fonctionnalité suivante :

  1. nous fournit une commande greet (salutation) distincte que nous utiliserons pour interagir avec le programme de l'application. interaction.

  2. greet peut accepter un paramètre facultatif (name) pour imprimer la personne accueillie (la valeur par défaut est Monde).

  3. greet peut accepter une option (--say) pour modifier le message d'accueil (la valeur par défaut est Bonjour).

  4. Si nous fournissons des paramètres ou des options, le programme affichera un message Hello World par défaut.

Comment créer une application en ligne de commande en utilisant PHP

  • Créez un nouveau répertoire pour notre projet et cdentrez-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__.&#39;/vendor/autoload.php&#39;;
    
    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(&#39;Hello World&#39;, &#39;1.0.0&#39;))
          ->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 HelloWorldprogramme de console
Comment créer rapidement des applications en ligne de commande en utilisant PHP
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

Explication de le contenu de ce fichier magique

OK, jetons un œil au code dans notre HelloWorld fichier.

  1. 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;
  1. symphony/consoleInstancier une nouvelle application par son nom HelloWorld (v1.0.0) et enregistrer notre commande greet.

    (new Application('Hello World', '1.0.0'))
        ->register('greet')
  2. 我们添加一个可选的name参数(addArgument()),并提供参数的简短描述。然后,我们使用这个addOption()方法添加一个say选项。请注意,选项始终是可选的,但您可以指定要传递的值,也可以仅仅将其用作指boolean标识。

    ->addArgument('name', InputArgument::OPTIONAL, 'Name of the person') 
    ->addOption('say', null, InputOption::VALUE_REQUIRED, 'Custom greeting')
  3. setCode()方法中的代码会包含我们应用程序的主逻辑,它会根据传递的参数和选项打印一个问候语到终端。我们监听$input对象,使用getArgument()getOption()辅助方法获取传递给greet的选项和参数,然后,我们只需要检查传递了哪些参数或者选项,并相应的(使用$output对象)向控制台输出打印问候语。这个writeln()方法可以根据标签格式化文本,比如输出不同颜色的info,errorwarning

    ->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>");
        }
      })
  4. 最后我们引导应用程序并调用他的方法,以便他做好随时接收和处理greet命令。

    ->getApplication()
    ->run();

现在让我们在实例中看看我们HelloWorld程序

  1. greet不传递任何参数和选项

Comment créer rapidement des applications en ligne de commande en utilisant PHP

  1. greet有一个可选的name参数

Comment créer rapidement des applications en ligne de commande en utilisant PHP

  1. greet使用say选项自定义问候语

Comment créer rapidement des applications en ligne de commande en utilisant PHP

  1. 最后,greet自定义问候语和问候人

Comment créer rapidement des applications en ligne de commande en utilisant PHP

相关推荐:

PHP命令行

关于webpack命令行的详细介绍

关于获取命令行参数的7篇文章推荐


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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn