亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频

自定義命令

EasySwoole 默認自帶有 5 個命令,如下所示:

php easyswoole.php crontab  對定時任務進行管理
php easyswoole.php install  安裝(需要在./vendor/easyswoole/easyswoole/bin/easyswoole 文件中調(diào)用)
php easyswoole.php phpunit  執(zhí)行單元測試 
php easyswoole.php process  對自定義進程進行管理
php easyswoole.php server   啟動、停止、重啟服務等
php easyswoole.php task     查看 task 任務的運行狀態(tài)

默認命令詳細內(nèi)容可查看 基礎(chǔ)管理命令

舊版本(3.4.x 之前版本)框架自定義命令的實現(xiàn)可查看 自定義命令 3.3.x

定義命令

通過實現(xiàn) \EasySwoole\EasySwoole\Command\CommandInterface 接口,用戶可自定義命令:

該接口定義的方法如下:

<?php

namespace EasySwoole\Command\AbstractInterface;

interface CommandInterface
{
    public function commandName(): string;

    public function exec(): ?string;

    public function help(CommandHelpInterface $commandHelp): CommandHelpInterface;

    public function desc(): string;
}

自定義命令使用示例

實現(xiàn)自定義命令接口(AbstractInterface)

新建文件 App/Command/Test.php,內(nèi)容如下:

<?php

namespace App\Command;

use EasySwoole\Command\AbstractInterface\CommandHelpInterface;
use EasySwoole\Command\AbstractInterface\CommandInterface;
use EasySwoole\Command\CommandManager;
use EasySwoole\EasySwoole\Command\Utility;

class Test implements CommandInterface
{
    // 設(shè)置命令名稱
    public function commandName(): string
    {
        return 'test';
    }

    // 處理執(zhí)行命令的邏輯
    public function exec(): ?string
    {
        // 獲取用戶輸入的命令參數(shù)
        $argv = CommandManager::getInstance()->getOriginArgv();

        if (count($argv) < 3) {
            echo "please input the action param!" . PHP_EOL;
            return null;
        }

        // remove test
        array_shift($argv);

        // 獲取 action 參數(shù)
        $action = $argv[1];

        // 下面就是對 自定義命令 的一些處理邏輯
        if (!$action) {
            echo "please input the action param!" . PHP_EOL;
            return null;
        }

        // 獲取 option 參數(shù)
        $optionArr = $argv[2] ?? [];

        switch ($action) {
            case 'echo_string':
                if ($optionArr) {
                    $strValue = explode('=', $optionArr);
                    echo $strValue[1] . PHP_EOL;
                } else {
                    echo 'this is test!' . PHP_EOL;
                }
                break;
            case 'echo_date':
                if ($optionArr) {
                    $strValue = explode('=', $optionArr);
                    echo "now is " . date('Y-m-d H:i:s') . ' ' . $strValue[1] . '!' . PHP_EOL;
                } else {
                    echo "now is " . date('Y-m-d H:i:s') . '!' . PHP_EOL;
                }
                break;
            case 'echo_logo':
                echo Utility::easySwooleLog();
                break;
            default:
                echo "the action {$action} is not existed!" . PHP_EOL;
        }
        return null;
    }

    public function help(CommandHelpInterface $commandHelp): CommandHelpInterface
    {
        // 添加 自定義action(action 名稱及描述)
        $commandHelp->addAction('echo_string', 'print the string');
        $commandHelp->addAction('echo_date', 'print the date');
        $commandHelp->addAction('echo_logo', 'print the logo');
        // 添加 自定義action 可選參數(shù)
        $commandHelp->addActionOpt('--str=str_value', 'the string to be printed ');
        return $commandHelp;
    }

    // 設(shè)置自定義命令描述
    public function desc(): string
    {
        return 'this is test command!';
    }
}

注冊自定義命令

bootstrap 事件 中注冊自定義命令。

修改項目根目錄的 bootstrap.php 文件,添加如下內(nèi)容實現(xiàn)注冊自定義命令:

<?php
//全局bootstrap事件
date_default_timezone_set('Asia/Shanghai');

# 【可選:調(diào)用 `initialize` 事件進行初始化】
// EasySwoole\EasySwoole\Core::getInstance()->initialize();

\EasySwoole\Command\CommandManager::getInstance()->addCommand(new \App\Command\Test());

注意:如果用戶需要獲取配置文件的配置,需要先執(zhí)行 initialize 事件,調(diào)用 EasySwoole\EasySwoole\Core::getInstance()->initialize(); 進行初始化。

bootstrap 事件3.2.5 新增的事件,它允許用戶在框架初始化之前執(zhí)行自定義事件。

執(zhí)行命令結(jié)果

$ php easyswoole.php test
please input the action param!

$ php easyswoole.php test -h
This is test command!
Usage:
  easyswoole test ACTION [--opts ...]
Actions:
  echo_string  print the string
  echo_date    print the date
  echo_logo    print the logo
Options:
  --str=str_value  the string to be printed 

$ php easyswoole.php test echo_string
this is test!

$ php easyswoole.php test echo_date
now is 2021-02-23 19:23:19!

$ php easyswoole.php test echo_logo
  ______                          _____                              _
 |  ____|                        / ____|                            | |
 | |__      __ _   ___   _   _  | (___   __      __   ___     ___   | |   ___
 |  __|    / _` | / __| | | | |  \___ \  \ \ /\ / /  / _ \   / _ \  | |  / _ \
 | |____  | (_| | \__ \ | |_| |  ____) |  \ V  V /  | (_) | | (_) | | | |  __/
 |______|  \__,_| |___/  \__, | |_____/    \_/\_/    \___/   \___/  |_|  \___|
                          __/ |
                         |___/

$ php easyswoole.php test echo_string --str="hello easyswoole"
hello easyswoole
亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频
  • <kbd id="eqi2k"><code id="eqi2k"></code></kbd><cite id="eqi2k"><tbody id="eqi2k"></tbody></cite>
    视频一区视频二区视频| 国产欧美丝祙| 九九九九九九精品| 久久九九99| 国产农村妇女精品一二区| 午夜精品区一区二区三| 日韩成人av网站| 国产在线精品一区| 国产精品午夜av在线| 久久国产一二区| 日韩视频精品| 亚洲欧洲午夜| 亚洲免费久久| 国产日韩精品一区观看| 亚洲国产精品一区在线观看不卡| 一区精品在线| 欧美成人在线免费观看| 欧美在线免费一级片| 最新不卡av| 亚洲欧美伊人| 禁久久精品乱码| 最新日韩av| 欧美中文字幕| 国产69精品久久久久9999apgf | 少妇免费毛片久久久久久久久| 国产伦精品一区二区三区免费视频 | 日韩亚洲一区在线播放| 国产精品视频入口| 另类视频在线观看+1080p| 欧美精品一区二区三区在线四季 | 亚洲一区激情| 久久天堂成人| 久久精品中文字幕一区二区三区 | 91久久亚洲| 午夜亚洲视频| 国产精品久久精品视| 国产精品亚洲综合| 日本一区二区视频| 欧美成人亚洲| 国产伦精品一区二区三区视频孕妇| 国产精品呻吟| 国产伦精品一区二区三区在线 | 天堂精品视频| 伊人久久久大香线蕉综合直播| 国产日韩欧美| 久久亚洲免费| 综合一区中文字幕| 亚洲一区二区伦理| 国产日韩精品久久| 在线成人av电影| 国产日韩1区| 久久99精品国产99久久| 欧美一区三区二区在线观看| 亚洲欧洲一级| 精品一区二区三区视频日产| 欧美1区免费| 91免费在线观看网站| 久久综合久久综合这里只有精品| 一区二区三区视频| 另类天堂av| 婷婷五月色综合| 性刺激综合网| 亚洲精品自在在线观看| 国产精品一页| 亚洲欧美久久234| 美女日韩在线中文字幕| 图片区小说区区亚洲五月| 亚洲一区日本| 亚洲精品国产精品国自产观看| 亚洲麻豆视频| 视频一区二区三区免费观看| 亚洲一区不卡| 女主播福利一区| 国产精品视频一区二区三区经| 午夜欧美精品| 精品国产一区二区三区免费 | www日韩av| 亚洲调教视频在线观看| 精品一区日韩成人| 国产视频不卡| 最新欧美日韩亚洲| 国产日韩亚洲精品| 国产精品久久久一区二区| 日韩精品一区二区三区丰满| 久久亚洲精品欧美| 亚洲福利免费| 欧美一区三区二区在线观看| 精品一区二区视频| 玖玖在线精品| 99精品欧美一区二区三区| 亚洲精美视频| 久久精品magnetxturnbtih| 国产伦精品一区二区三区照片91| 亚洲一区二区精品在线观看| 国内精品久久国产| 操人视频欧美| 久久精品中文字幕一区二区三区| 亚洲午夜黄色| 欧美激情综合| 亚洲欧美日韩另类精品一区二区三区| 国产精品永久入口久久久| 亚洲欧美日韩精品综合在线观看| 欧美私人啪啪vps| 在线视频一区观看| 无遮挡亚洲一区| 日本不卡久久| 欧美在线视频二区| 免费精品视频一区| 久久久久久精| 久久精品国产精品青草色艺| 高清视频一区二区三区| 444亚洲人体| 99精彩视频| 97se亚洲综合| 国产精品一区二| 国产成人精品一区二区三区福利| 另类国产ts人妖高潮视频| 亚洲综合欧美日韩| 久久久久在线| 国产精品久久精品视| 国产日韩欧美一区二区三区四区 | 欧美激情一区二区三区在线视频| 亚洲一区二区精品在线| 在线视频一区观看| 午夜激情一区| 亚洲高清网站| 亚洲欧美精品| 国产精品免费在线播放| 国内精品视频免费| 日韩欧美一区二区三区久久婷婷| 日韩av电影免费观看| 亚洲综合网中心| 国产精品二区三区四区| 99国产精品视频免费观看一公开| 99在线|亚洲一区二区| 久久久久久穴| 麻豆传媒一区二区| 欧美在线三级| 亚洲一区二区精品在线| 丁香五月网久久综合| 欧美 日韩 国产在线| 亚洲精品在线免费看| 国产精品www994| 免费看亚洲片| 欧美日韩亚洲在线| 国语精品一区| 2019国产精品视频| 日产精品高清视频免费| 狠狠色噜噜狠狠狠狠色吗综合| 国产精品资源| 日本高清一区| 亚洲黄色在线| 国产福利久久精品| 中文视频一区视频二区视频三区| 亚洲日本成人| 好看的日韩精品视频在线| 中文字幕免费在线不卡| 国产精品夜夜夜| 欧美一级日本a级v片| 亚洲国内在线| 欧美久久综合性欧美| 亚洲小说欧美另类社区| av免费观看久久| 欧美涩涩视频| 久久成人资源| 亚洲美女毛片| 先锋影音一区二区三区| 亚洲欧美日本国产专区一区| 日本电影一区二区三区| 国产伦精品一区二区三区视频孕妇| 免费一区二区三区| 亚洲精品日韩久久| 日韩精品不卡| 老牛国产精品一区的观看方式| 亚洲一区二区高清视频| 成人看片视频| 亚洲国产精品视频一区| 日韩三级电影| 97久久人人超碰caoprom欧美| 欧美一区二区三区久久精品| 国产91视觉| 亚洲深夜激情| 欧美日韩三区| 日韩欧美在线一区二区| 97欧洲一区二区精品免费| 亚洲午夜精品久久久久久浪潮| 久久久一本精品99久久精品| 国产偷自视频区视频一区二区| 亚洲三区在线| 麻豆传媒一区二区| 成人黄色在线免费观看| 中文精品一区二区三区 | 欧美精品一区在线发布| 3d动漫啪啪精品一区二区免费| 永久域名在线精品| 在线国产精品网| 日韩中文不卡| 免费观看成人在线| 久久福利电影| 国内不卡一区二区三区|