<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之旅 廣告
                # 命令行應用(Command Line Applications) CLI應用即是運行在命令行窗體上的應用。 主要用來實現后臺任務, 命令行工具等。 ## 結構(Structure) 最小結構的CLI程序如下: * app/config/config.php * app/tasks/MainTask.php * app/cli.php <– 主要啟動文件 ## 創建引導(Creating a Bootstrap) 普通的MVC程序中,啟動文件用來啟動整個應用。和web應用不同, 此處應用中我們使用cli.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應用 $console = new ConsoleApp(); $console->setDI($di); /** * 處理console應用參數 */ $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) { echo $e->getMessage(); exit(255); } ~~~ 上面的代碼可以使用如下方式執行: ~~~ $ php app/cli.php 這樣程序會直接執行默認的任務及默認動作. ~~~ ## 任務(Tasks) 這里的任務同于web應用中的控制器。 任一 CLI 應用程序都至少包含一個mainTask 及一個 mainAction, 每個任務至少有一個mainAction, 這樣在使用者未明確的 指定action時 此mainAction就會執行。 下面即是一個mainTask的例子( app/tasks/MainTask.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; } } ~~~ ## 處理動作參數(Processing action parameters) CLI應用中, 開發者也可以在action中處理傳遞過來的參數, 下面的例子中已經對傳遞過來的參數進行了處理。 如果你使用下面的參數和動作運行應用程序: ~~~ <?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; } } ~~~ 我們可以使用下面的命令行及參數執行程序: ~~~ $ php app/cli.php main test world universe hello world best regards, universe ~~~ ## 鏈中運行任務(Running tasks in a chain) CLI應用中可以在一個action中執行另一action. 要實現這個需要在 DI 中設置console. ~~~ <?php $di->setShared("console", $console); try { // Handle incoming arguments $console->handle($arguments); } catch (\Phalcon\Exception $e) { echo $e->getMessage(); exit(255); } ~~~ 然后開發者即可在一個action中使用用其它的action了. 下面即是例子: ~~~ <?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](http://docs.iphalcon.cn/api/Phalcon_Cli_Task.html)來實現如上操作會是一個更好主意。
                  <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>

                              哎呀哎呀视频在线观看