目次
这个Hello World应用程序将会有如下功能:
如何使用PHP构建命令行应用程序
解释这个神奇的文件内容
现在让我们在实例中看看我们HelloWorld程序
この Hello World アプリケーションには次の機能があります。
PHP を使用してコマンド ライン アプリケーションを構築する方法
この魔法のファイルの内容について説明してください
例で HelloWorld プログラムを見てみましょう
关于作者
著者について
この魔法のファイルの内容を説明してください
ホームページ バックエンド開発 PHPチュートリアル PHP を使用してコマンドライン アプリケーションをすばやく構築する方法

PHP を使用してコマンドライン アプリケーションをすばやく構築する方法

Dec 18, 2017 pm 04:15 PM
php コマンドライン アプリ


あなたが Web 開発エンジニアであれば、PHP を使用して多くの Web アプリケーションを開発したことがあるはずです。しかし、PHP を使用してコマンド ライン アプリケーション (ツール) を迅速に構築する方法をご存知ですか? 以下では、PHP と有名な Composer 拡張パッケージ -- Symphony/Console はコマンド ライン アプリケーションを構築します。 <code>Web开发工程师,那么你一定使用PHP开发过很多Web应用程序。但是你知道如何使用PHP快速构建一个命令行应用程序(工具)吗?下面我将向您展示如何使用PHP和一个著名的的Composer扩展包--Symphony/Console构建一个命令行应用。

Symphony/Console是一个使用Composer管理的PHP扩展包,它简化了创建一个漂亮的、可测试的PHP命令行应用的过程,它提供了开箱即用的诸如(可选/必选的)参数规范和选项规范(使用-符号)等功能。那么,我们来一起开始构建我们的应用。

按照惯例,我们将构建一个“Hello World”的控制台应用程序,但是要稍微修改一下它,让它支持自定义问候语(代替Hello),并且可以随意的去问候一个人(代替world)。

这个Hello World应用程序将会有如下功能:

  1. 为我们提供一个单独的greet(问候)命令,我们将使用它来与应用程序交互。

  2. greet可以接受一个可选的参数(name)来打印出一个被问候的人(默认是World)。

  3. greet可以接受一个选项(--say)来更改问候语(默认是Hello)。

  4. 如果我们么样给定参数或者选项,程序将默认输出一个Hello World消息。

如何使用PHP构建命令行应用程序

  • 为我们的项目创建新的目录并cd进入它:

    mkdir hello-world-app && cd hello-world-app
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
  • 使用Composer将控制台组件引入我们项目

    composer require symfony/console
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
  • 然后为你的应用程序创建一个入口点,PHP扩展不是必需的,因为我们要使这个文件成为可执行文件,并在文件本身中指定环境。

    touch HelloWorld
    chmod +X HelloWorld
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
  • 将下面的代码添加到HelloWorld文件中(后面我将为每一行做注解),并在你的终端中执行HelloWorld这个应用程序.

    #!/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();
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

看,就这样,你拥有了自己的HelloWorld控制台程序
PHP を使用してコマンドライン アプリケーションをすばやく構築する方法
当没有指定命令时,HelloWorld默认输出一屏信息提示

Symfony Console组件给我们提供的应用程序有几个开箱可用的选项的和命令,比如helplist--version

解释这个神奇的文件内容

OK,让我们来看看我们的HelloWorld文件中的代码。

  1. 我们引入autoload.php以使用由composer提供的自动加载以及控制台组件提供的各功能。

InputInterfaceOutputInterface将使应用程序的输入和输出功能变得简单,InputArgumentInputOption将帮助我们处理传递给我们HelloWorld应用程序的选项和参数。

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/console通过名称实例化一个新的应用程序HelloWorld (v1.0.0) ,并注册我们的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

    Symphony/Console は、Composer で管理される PHP 拡張パッケージです。これにより、美しくテスト可能な PHP コマンド ラインの作成が簡素化されます。アプリケーション プロセスは、 (オプション/必須) パラメータ指定やオプション指定 (- 記号を使用) などの -of-the-box 関数。それでは、一緒にアプリケーションの構築を始めましょう。
いつものように、「Hello World」コンソール アプリケーションを構築しますが、(Hello の代わりに) カスタムの挨拶をサポートし、(World の代わりに) 自由に人に挨拶できるように少し変更します。

この Hello World アプリケーションには次の機能があります:

  1. 別の greet(greeting) を提供してください。コマンド。アプリケーションと対話するために使用します。 PHP を使用してコマンドライン アプリケーションをすばやく構築する方法
  2. greet は、挨拶される人を出力するためのオプションのパラメータ (name) を受け入れることができます (デフォルトは World)。 🎜🎜
  3. 🎜greet は、挨拶を変更するオプション (--say) を受け入れることができます (デフォルトは Hello)。 🎜🎜
  4. 🎜パラメータまたはオプションを指定すると、プログラムはデフォルトで Hello World メッセージを出力します。 🎜🎜🎜

    PHP を使用してコマンド ライン アプリケーションを構築する方法

    • 🎜 プロジェクト用の新しいディレクトリを作成し、cdそれに進みます: 🎜
      mkdir hello-world-app && cd hello-world-app
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー
      🎜
    • 🎜Composerを使用してコンソールコンポーネントをプロジェクトに組み込みます🎜
      composer require symfony/console
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー
      🎜
    • 🎜 次に、アプリケーションのエントリポイントを作成します。これから作成するため、PHP拡張機能は必要ありません。このファイルは実行ファイルとなり、ファイル自体に環境を指定します。 🎜
      touch HelloWorld
      chmod +X HelloWorld
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー
      🎜
    • 🎜次のコードを HelloWorld ファイルに追加し (後で各行に注釈を付けます)、ターミナル Application.🎜
      #!/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();
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー
      🎜HelloWorld を実行します。 /ul>🎜ほら、それだけです。独自の HelloWorld コンソール プログラムができました🎜🎜PHP を使用してコマンドライン アプリケーションをすばやく構築する方法🎜🎜 コマンドが指定されていない場合、HelloWorld はデフォルトで情報画面を出力します🎜🎜Symfony Console コンポーネントはアプリケーションを提供します。利用可能なオプションとコマンドがいくつかあります。 helplist--version などのボックス🎜

      この魔法のファイルの内容について説明してください

      🎜 OK、しましょうHelloWorld ファイル内のコードを見てください。 🎜
      1. 🎜 composer とコンソール コンポーネントの Each 関数によって提供される自動読み込みを使用する autoload.php を紹介します。 🎜🎜🎜🎜InputInterfaceOutputInterface はアプリケーションの入出力関数をシンプルにし、InputArgumentInputOption はHelloWorld アプリケーションに渡されるオプションとパラメータを処理するのに役立ちます。 🎜
        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/consoleHelloWorld (v1.0.0) という名前で新しいアプリケーションをインスタンス化し、登録しますgreet コマンドです。 🎜
          (new Application('Hello World', '1.0.0'))
              ->register('greet')
          ログイン後にコピー
          ログイン後にコピー
          ログイン後にコピー
          ログイン後にコピー
          🎜
        2. 🎜 オプションの name パラメーター (addArgument()) を追加し、パラメーターの簡単な説明を提供します。次に、この addOption() メソッドを使用して say オプションを追加します。オプションは常にオプションですが、渡す値を指定することも、単にブール識別子への参照として使用することもできることに注意してください。 🎜
          ->addArgument('name', InputArgument::OPTIONAL, 'Name of the person') 
          ->addOption('say', null, InputOption::VALUE_REQUIRED, 'Custom greeting')
          ログイン後にコピー
          ログイン後にコピー
          ログイン後にコピー
          ログイン後にコピー
          🎜
        3. 🎜 setCode() メソッドのコードには、渡されたパラメーターとオプションに基づいて端末に挨拶を出力するアプリケーションのメイン ロジックが含まれます。 $input オブジェクトをリッスンし、getArgument() および getOption() ヘルパー メソッドを使用して、greet に渡されるオプションを取得します。 とパラメータを指定したら、渡されたパラメータまたはオプションを確認し、それに応じて挨拶をコンソールに出力するだけです ($output オブジェクトを使用)。この writeln() メソッドは、infoerrorwarning の異なる色の出力など、タグに従ってテキストをフォーマットできます。 > 。 🎜
          ->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 が通過しませんパラメータとオプション 🎜🎜🎜🎜🎜🎜🎜🎜
            1. greet にはオプションの name パラメータがありますgreet有一个可选的name参数

            PHP を使用してコマンドライン アプリケーションをすばやく構築する方法

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

            PHP を使用してコマンドライン アプリケーションをすばやく構築する方法

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

            PHP を使用してコマンドライン アプリケーションをすばやく構築する方法


            关于作者

            程序开发人员,不拘泥于语言与技术,目前主要从事PHP和前端开发,使用Laravel和VueJs。合适和够用是永不停息的追求。

            个人网站:https://www.linganmin.cn

            译者注:本文中的部分链接和图片地址已更换为国内地址,如有翻译错误请多指正。
            Happy Coding!


            原文地址:How to build a Command Line Application using PHP?

            如果你是一名Web开发工程师,那么你一定使用PHP开发过很多Web应用程序。但是你知道如何使用PHP快速构建一个命令行应用程序(工具)吗?下面我将向您展示如何使用PHP和一个著名的的Composer扩展包--Symphony/Console构建一个命令行应用。

            Symphony/Console是一个使用Composer管理的PHP扩展包,它简化了创建一个漂亮的、可测试的PHP命令行应用的过程,它提供了开箱即用的诸如(可选/必选的)参数规范和选项规范(使用-符号)等功能。那么,我们来一起开始构建我们的应用。

            按照惯例,我们将构建一个“Hello World”的控制台应用程序,但是要稍微修改一下它,让它支持自定义问候语(代替Hello),并且可以随意的去问候一个人(代替world)。

            这个Hello World应用程序将会有如下功能:

            1. 为我们提供一个单独的greet(问候)命令,我们将使用它来与应用程序交互。

            2. greet可以接受一个可选的参数(name)来打印出一个被问候的人(默认是World)。

            3. greet可以接受一个选项(--say)来更改问候语(默认是Hello)。

            4. 如果我们么样给定参数或者选项,程序将默认输出一个Hello World消息。

            如何使用PHP构建命令行应用程序

            • 为我们的项目创建新的目录并cd进入它:

              mkdir hello-world-app && cd hello-world-app
              ログイン後にコピー
              ログイン後にコピー
              ログイン後にコピー
              ログイン後にコピー
            • 使用Composer将控制台组件引入我们项目

              composer require symfony/console
              ログイン後にコピー
              ログイン後にコピー
              ログイン後にコピー
            • 然后为你的应用程序创建一个入口点,PHP扩展不是必需的,因为我们要使这个文件成为可执行文件,并在文件本身中指定环境。

              touch HelloWorld
              chmod +X HelloWorld
              ログイン後にコピー
              ログイン後にコピー
              ログイン後にコピー
            • 将下面的代码添加到HelloWorld文件中(后面我将为每一行做注解),并在你的终端中执行HelloWorld这个应用程序.

              #!/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();
              ログイン後にコピー
              ログイン後にコピー
              ログイン後にコピー

            看,就这样,你拥有了自己的HelloWorld控制台程序
            PHP を使用してコマンドライン アプリケーションをすばやく構築する方法
            当没有指定命令时,HelloWorld默认输出一屏信息提示

            Symfony Console组件给我们提供的应用程序有几个开箱可用的选项的和命令,比如helplist--version

            解释这个神奇的文件内容

            OK,让我们来看看我们的HelloWorld文件中的代码。

            1. 我们引入autoload.php以使用由composer提供的自动加载以及控制台组件提供的各功能。

            InputInterfaceOutputInterface将使应用程序的输入和输出功能变得简单,InputArgumentInputOption将帮助我们处理传递给我们HelloWorld应用程序的选项和参数。

            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/console通过名称实例化一个新的应用程序HelloWorld (v1.0.0) ,并注册我们的greet

            PHP を使用してコマンドライン アプリケーションをすばやく構築する方法🎜🎜🎜🎜greetsayを使用します>挨拶をカスタマイズするオプション 🎜
          🎜PHP を使用してコマンドライン アプリケーションをすばやく構築する方法🎜🎜🎜🎜最後に、greet で挨拶と挨拶担当者をカスタマイズします🎜
        🎜PHP を使用してコマンドライン アプリケーションをすばやく構築する方法🎜

        著者について

        言語やテクノロジーに限定されないプログラム開発者。現在は主に Laravel や VueJs を使用した PHP やフロントエンド開発に従事しています。適合性と十分性は終わりのない追求です。 🎜個人ウェブサイト: https://www.linganmin.cn🎜
        🎜翻訳者注: この記事の一部のリンクと画像アドレスは国内のアドレスに置き換えられています。翻訳エラーがある場合は修正してください。
        コーディングを楽しんでください! 🎜


        🎜

        元のアドレス: PHP を使用してコマンド ライン アプリケーションを構築するには?
        🎜Web 開発の場合エンジニアであれば、PHP を使用して多くの Web アプリケーションを開発したことがあるはずです。しかし、PHP を使用してコマンド ライン アプリケーション (ツール) を迅速に構築する方法をご存知ですか? 以下では、PHP と有名な Composer 拡張パッケージ -- Symphony/Console はコマンド ライン アプリケーションを構築します。 🎜🎜Symphony/Console は、<code>Composer で管理される PHP 拡張パッケージです。これにより、美しくテスト可能な PHP コマンド ラインの作成が簡素化されます。アプリケーション プロセスは、 (オプション/必須) パラメータ指定やオプション指定 (- 記号を使用) などの -of-the-box 関数。それでは、一緒にアプリケーションの構築を始めましょう。 🎜🎜 いつものように、「Hello World」コンソール アプリケーションを構築しますが、(Hello の代わりに) カスタムの挨拶をサポートし、(World の代わりに) 自由に人に挨拶できるように少し変更します。 🎜

        この Hello World アプリケーションには次の機能があります。

        🎜🎜🎜 は、アプリケーションと対話するために使用する別の greet (挨拶) コマンドを提供します。 🎜
      2. 🎜🎜greet は、挨拶される人を出力するためのオプションのパラメータ (name) を受け入れることができます (デフォルトは World)。 🎜
    • 🎜🎜greet は、挨拶を変更するオプション (--say) を受け入れることができます (デフォルトは Hello)。 🎜
  5. 🎜🎜パラメータまたはオプションを指定すると、プログラムはデフォルトで Hello World メッセージを出力します。 🎜

PHP を使用してコマンド ライン アプリケーションを構築する方法

    🎜🎜 プロジェクト用の新しいディレクトリを作成し、 cd をそれに追加します: 🎜
(new Application('Hello World', '1.0.0'))
    ->register('greet')
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
🎜🎜 Composer を使用してコンソール コンポーネントをプロジェクトに組み込みます 🎜
->addArgument('name', InputArgument::OPTIONAL, 'Name of the person') 
->addOption('say', null, InputOption::VALUE_REQUIRED, 'Custom greeting')
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
🎜🎜 次に、アプリケーションのエントリ ポイントを作成します。PHP 拡張機能は必要ありません。このファイルを実行可能にして、ファイル自体に環境を指定するためです。 🎜
->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>");
    }
  })
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
🎜🎜次のコードを HelloWorld ファイルに追加し (後で各行に注釈を付けます)、ターミナルのこのアプリケーションで HelloWorld を実行します。🎜
->getApplication()
->run();
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
🎜ほら、これで、独自の HelloWorld コンソール プログラムが完成しました。
PHP を使用してコマンドライン アプリケーションをすばやく構築する方法
コマンドが指定されていない場合、HelloWorld はデフォルトで 1 画面の情報プロンプトを出力します🎜🎜 Symfony Console コンポーネントは、helplist code>、<code> など、アプリケーションですぐに使用できるいくつかのオプションとコマンドを提供します。 --version🎜

この魔法のファイルの内容を説明してください

🎜 OK、HelloWorld ファイルのコードを見てみましょう。 🎜🎜🎜🎜composer によって提供される自動読み込みと、コンソール コンポーネントによって提供されるさまざまな機能を使用するための autoload.php を紹介します。 🎜🎜InputInterfaceOutputInterface は、アプリケーションの入出力関数をシンプルにします。InputArgument と InputOption は、HelloWorld アプリケーションに渡されるオプションとパラメータを処理するのに役立ちます。 🎜
mkdir hello-world-app && cd hello-world-app
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
🎜🎜🎜symphony/consoleHelloWorld (v1.0.0) という名前で新しいアプリケーションをインスタンス化し、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,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>");
        }
      })
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
  • 最后我们引导应用程序并调用他的方法,以便他做好随时接收和处理greet命令。

    ->getApplication()
    ->run();
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
  • 现在让我们在实例中看看我们HelloWorld程序

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

    PHP を使用してコマンドライン アプリケーションをすばやく構築する方法

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

    PHP を使用してコマンドライン アプリケーションをすばやく構築する方法

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

    PHP を使用してコマンドライン アプリケーションをすばやく構築する方法

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

    PHP を使用してコマンドライン アプリケーションをすばやく構築する方法

    相关推荐:

    PHP命令行

    关于webpack命令行的详细介绍

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


    以上がPHP を使用してコマンドライン アプリケーションをすばやく構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

    PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

    PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

    Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

    今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

    あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

    PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

    このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

    JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

    JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

    母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

    文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

    PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

    静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

    PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

    PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

    See all articles