1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/dvaknheo-duckphp

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Core-Console.md 2.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
dvaknheo Отправлено 02.06.2024 14:01 5fafe9d

DuckPhp\Core\Console

[toc]

简介

组件类 完成命令行功能

选项

全部选项

    'cli_enable' => true,

命令行,启用命令行扩展

    'cli_mode' => 'replace',

命令行,模式,替换模式或者是路由钩子的模式

    'cli_command_alias' => [],

命令行,类别名列表

    'cli_default_command_class' => '',

命令行,默认类

    'cli_command_method_prefix' => 'command_',

命令行,默认方法前缀

    'cli_command_default' => 'help',

命令行,默认调用指令

    'cli_command_group' => [ ],

方法

public static function _($object = null)
public function __construct()
public function isInited(): bool
public function init(array $options, ?object $context = null)

以上是常规流程方法

public function run()

运行

public function app()

获得调用的 $context

protected function getObject($class)

public function getCliParameters()

重要,获得 命令行参数

public function regCommandClass($class, $alias = null)

注册某类为命令

public static function DoRun($path_info = '')

传入path_info 运行,作为路由钩子的回调

public function callObject($class, $method, $args, $input)

调用类方法

public function getCommandListInfo()

得到可用命令列表

public function readLines($options, $desc, $validators = [], $fp_in = null, $fp_out = null)

读入输入输出

protected function parseCliArgs($argv)

protected function getClassAndMethod($cmd)

protected function getCommandsByClass($class)

protected function getCommandGroupInfo()

public function regCommandClass($command_namespace, $phase, $classes, $method_prefix = 'command_')

public function getCallback($group, $cmd_method)

public function getArgs()

详解

Console 类是 DuckPhp 的 命令行支持类。 DuckPhpCommand

添加自定义命令。

你的类里加 command_$cmd 。 即可 该方法的 phpdoc 第一行就是简介

使用参数 命令行中的 --XX 会成为方法中的 $XX 参数 cmd a b --x c d --y z --abc-d => command_cmd('a','b');

abc-d 会转成 $abc_d

你可以用 Console::G()->getCliParameters(); 获得参数的值

此外 App::Parameter() 也获得参数的值

你的 app 类,还有其他 command_$cmd 会加入或覆盖 默认的 方法。

如果你要注册额外的 类 方法 ,使用 regCommandClass()

getCommandListInfo() 会把他们展示出来

readLines 的例子

        $desc = <<<EOT
input host and port
host[{host}]
port[{port}]
areyousure[{ok}]

done;

EOT;
        $options=[
            //'host'=>'127.0.0.1',
            'port'=>'80',
        ];
        $ret=ConsoleParent::G()->readLines($options,$desc,[],$input,$output);

完毕

    'cli_readlines_logfile' => '',

public function readLinesFill($data)

public function readLinesCleanFill()

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/dvaknheo-duckphp.git
git@api.gitlife.ru:oschina-mirror/dvaknheo-duckphp.git
oschina-mirror
dvaknheo-duckphp
dvaknheo-duckphp
master