<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] # 創建命令行(CLI)應用程序 CLI應用程序從命令行執行。它們對于創建定時作業,腳本,命令實用程序等非常有用。 ## 結構 CLI應用程序的最小結構如下所示: * `app/config/config.php` * `app/tasks/MainTask.php` * `app/cli.php` 主啟動文件 ## 創建啟動程序 與常規MVC應用程序一樣,啟動程序文件用于啟動應用程序。我們使用`cli.php`文件來啟動應用程序,而不是Web應用程序中的`index.php`啟動程序。 下面是一個用于此示例的示例啟動程序。 ```php <?php use Phalcon\Di\FactoryDefault\Cli as CliDI; use Phalcon\Cli\Console as ConsoleApp; use Phalcon\Loader; // 使用CLI工廠默認服務容器 $di = new CliDI(); /** * 注冊自動加載器并告訴它注冊任務目錄 */ $loader = new Loader(); $loader->registerDirs( [ __DIR__ . '/tasks', ] ); $loader->register(); // 加載配置文件(如果有) $configFile = __DIR__ . '/config/config.php'; if (is_readable($configFile)) { $config = include $configFile; $di->set('config', $config); } // 創建控制臺應用程序 $console = new ConsoleApp(); $console->setDI($di); /** * 處理控制臺參數 */ $arguments = []; foreach ($argv as $k => $arg) { if ($k === 1) { $arguments['task'] = $arg; } elseif ($k === 2) { $arguments['action'] = $arg; } elseif ($k >= 3) { $arguments['params'][] = $arg; } } try { // 處理傳入的參數 $console->handle($arguments); } catch (\Phalcon\Exception $e) { // Phalcon在這里做了相關的事情 // .. fwrite(STDERR, $e->getMessage() . PHP_EOL); exit(1); } catch (\Throwable $throwable) { fwrite(STDERR, $throwable->getMessage() . PHP_EOL); exit(1); } ``` 這段代碼可以使用以下命令運行: ```bash php app/cli.php ``` ## 任務 任務與控制器類似。任何CLI應用程序至少需要一個`MainTask`和一個`mainAction`,并且每個任務都需要有一個`mainAction`,如果沒有明確給出任何操作,它將運行。 下面是 `app/tasks/MainTask.php` 文件的示例: ```php <?php use Phalcon\Cli\Task; class MainTask extends Task { public function mainAction() { echo 'This is the default task and the default action' . PHP_EOL; } } ``` ## 處理動作參數 可以將參數傳遞給操作,其代碼已經存在于示例啟動程序中。 如果使用以下參數和操作運行應用程序: ```php <?php use Phalcon\Cli\Task; class MainTask extends Task { public function mainAction() { echo 'This is the default task and the default action' . PHP_EOL; } /** * @param array $params */ public function testAction(array $params) { echo sprintf('hello %s', $params[0]); echo PHP_EOL; echo sprintf('best regards, %s', $params[1]); echo PHP_EOL; } } ``` 然后我們可以運行以下命令: ```bash php app/cli.php main test world universe hello world best regards, universe ``` ## 鏈式操作運行任務 如果需要,還可以用鏈式操作運行任務。要實現此目的,您必須將控制臺本身添加到DI: ```php <?php $di->setShared("console", $console); try { // 處理傳入的參數 $console->handle($arguments); } catch (\Phalcon\Exception $e) { // Phalcon在這里做了相關的事情 // .. fwrite(STDERR, $e->getMessage() . PHP_EOL); exit(1); } catch (\Throwable $throwable) { fwrite(STDERR, $throwable->getMessage() . PHP_EOL); exit(1); } ``` 然后你可以在任何任務中使用控制臺。下面是修改后的MainTask.php的示例: ```php <?php use Phalcon\Cli\Task; class MainTask extends Task { public function mainAction() { echo "This is the default task and the default action" . PHP_EOL; $this->console->handle( [ "task" => "main", "action" => "test", ] ); } public function testAction() { echo "I will get printed too!" . PHP_EOL; } } ``` 但是,擴展 `Phalcon\Cli\Task` 并在那里實現這種邏輯是一個更好的主意。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看