CakePHP
  • 文档
    • 手册
    • API
    • 视频
    • 报告安全问题
    • 隐私政策
    • 标识和商标
  • 商业解决方案
  • 周边产品
  • 公路旅行
  • 团队
  • 社区
    • 社区
    • 参与进来
    • 问题 (Github)
    • 烘焙坊
    • 精选资源
    • 培训
    • 聚会
    • 我的CakePHP
    • CakeFest
    • 时事通讯
    • LinkedIn
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • 帮助和支持
    • 论坛
    • Stack Overflow
    • IRC
    • Slack
    • 付费支持
CakePHP

C CakePHP 5.1 Chiffon API

  • 项目
    • CakePHP
      • CakePHP
      • Chronos
      • Elastic Search
      • 队列
  • 版本
    • 5.1
      • 5.1
      • 5.0
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

命名空间

  • 全局
  • Cake
    • Cache
    • Collection
    • Command
    • Console
      • Command
      • Exception
      • TestSuite
    • Controller
    • Core
    • Database
    • Datasource
    • Error
    • Event
    • Form
    • Http
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
    • TestSuite
    • Utility
    • Validation
    • View

类 ConsoleOptionParser

处理命令行中的 ARGV 解析,并提供对 GetOpt 兼容选项定义的支持。为创建 shell 选项解析器提供一个构建器模式实现。

选项

命名参数有两种形式:长参数和短参数。长参数以两个 - 开头,并提供更详细的选项名称,例如 --version。短参数以一个 - 开头,长度仅为一个字符。它们通常与长选项匹配,并提供更简洁的替代方案。

使用选项

选项可以使用长形式和短形式来定义。使用 $parser->addOption() 可以定义新选项。选项的名称用作其长形式,还可以使用 short 选项提供一个额外的短形式。短选项的长度应仅为一个字母。使用超过一个字母的短选项将引发异常。

调用选项可以使用与大多数 *nix 命令行工具类似的语法。长选项可以包含 = 或省略它。

cake my_command --connection default --name=something

短选项可以单独定义或分组定义。

cake my_command -cn

短选项可以像上面那样组合成组。组中的每个字母都将被视为单独的选项。上面的例子等同于

cake my_command -c -n

短选项也可以接受值

cake my_command -c default

位置参数

如果没有定义位置参数,则将解析所有位置参数。如果定义了位置参数,则任何超过定义的位置参数都将导致异常。此外,还可以通过将 required 参数设置为 false 来声明参数为可选参数。

$parser->addArgument('model', ['required' => false]);

提供帮助文本

通过为位置参数和命名参数提供帮助文本,ConsoleOptionParser 可以为您生成帮助显示。可以使用 --help 或 -h 开关查看 shell 的帮助信息。

命名空间: Cake\Console

属性摘要

  • $_args protected
    arrayCake\Console\ConsoleInputArgument>

    位置参数定义。

  • $_command protected
    string

    命令名称。

  • $_description protected
    string

    描述文本 - 在生成帮助信息时显示在选项之前

  • $_epilog protected
    string

    尾声文本 - 在生成帮助信息时显示在选项之后

  • $_options protected
    array<string,Cake\Console\ConsoleInputOption>

    选项定义。

  • $_shortOptions protected
    array<string, string>

    短 -> 长选项映射,在使用 addOption() 时生成

  • $_tokens protected
    array

    args(argv)数组。

  • $rootName protected
    string

    帮助输出中使用的根别名

方法摘要

  • __construct() public

    构造一个 OptionParser,以便您可以定义其行为

  • _nextToken() protected

    在 argv 集合中查找下一个标记。

  • _optionExists() protected

    检查 $name 是否为其定义了选项(短/长)。

  • _parseArg() protected

    解析一个参数,并确保参数不超过参数数量,并且参数是一个有效的选项。

  • _parseLongOption() protected

    从 $this->_tokens 中解析长选项的值。将处理包含 = 的选项。

  • _parseOption() protected

    通过其名称索引解析一个选项。

  • _parseShortOption() protected

    从 $this->_tokens 中解析短选项的值。如果 $option 是多个快捷方式的组合,例如 -otf,则它们将被移到标记堆栈上并单独解析。

  • addArgument() public

    向选项解析器添加位置参数。

  • addArguments() public

    一次添加多个参数。接受一个参数定义数组。键用作参数名称,值用作参数的参数。

  • addOption() public

    向选项解析器添加选项。选项允许您为控制台应用程序定义可选参数或必填参数。选项由它们使用的参数定义。

  • addOptions() public

    一次添加多个选项。接受一个选项定义数组。键用作选项名称,值用作选项的参数。

  • argumentNames() public

    获取参数名称列表。

  • arguments() public

    获取解析器中定义的参数。

  • buildFromArray() public static

    从数组构建一个解析器。使用类似于以下的数组

  • create() public static

    用于创建新 OptionParsers 的静态工厂方法,以便您可以将方法链接到它们。

  • getCommand() public

    获取 shell/task 的命令名称。

  • getDescription() public

    获取 shell/task 的描述文本。

  • getEpilog() public

    获取尾声。

  • help() public

    获取此解析器对象的格式化帮助信息。

  • merge() public

    获取或设置 shell/task 的命令名称。

  • options() public

    获取解析器中定义的选项。

  • parse() public

    将 argv 数组解析为一组参数和参数。

  • removeOption() public

    从选项解析器中删除选项。

  • setCommand() public

    设置 shell/task 的命令名称。

  • setDescription() public

    设置 shell/task 的描述文本。

  • setEpilog() public

    向解析器设置尾声。尾声在生成帮助信息时添加到选项和参数列表的末尾。

  • setRootName() public

    设置 HelpFormatter 中使用的根名称

  • toArray() public

    返回此解析器的数组表示形式。

方法详细信息

__construct() ¶ public

__construct(string $command = '', bool $defaultOptions = true)

构造一个 OptionParser,以便您可以定义其行为

参数
string $command optional

此解析器所属的命令名称。命令名称用于生成帮助信息。

bool $defaultOptions optional

是否要设置详细选项和静默选项。将此设置为 false 将阻止添加 --verbose 和 --quiet 选项。

_nextToken() ¶ protected

_nextToken(): string

在 argv 集合中查找下一个标记。

返回
string

_optionExists() ¶ protected

_optionExists(string $name): bool

检查 $name 是否为其定义了选项(短/长)。

参数
string $name

选项的名称。

返回
bool

_parseArg() ¶ protected

_parseArg(string $argument, array $args): list<string>

解析一个参数,并确保参数不超过参数数量,并且参数是一个有效的选项。

参数
string $argument

要追加的参数

array $args

要追加的解析后的参数数组。

返回
list<string>
抛出
Cake\Console\Exception\ConsoleException

_parseLongOption() ¶ protected

_parseLongOption(string $option, array<string, mixed> $params): array

从 $this->_tokens 中解析长选项的值。将处理包含 = 的选项。

参数
string $option

要解析的选项。

array<string, mixed> $params

要将解析后的值追加到的参数

返回
array

_parseOption() ¶ protected

_parseOption(string $name, array<string, mixed> $params): array<string, mixed>

通过其名称索引解析一个选项。

参数
string $name

要解析的名称。

array<string, mixed> $params

要将解析后的值追加到的参数

返回
array<string, mixed>
抛出
Cake\Console\Exception\ConsoleException

_parseShortOption() ¶ protected

_parseShortOption(string $option, array<string, mixed> $params): array<string, mixed>

从 $this->_tokens 中解析短选项的值。如果 $option 是多个快捷方式的组合,例如 -otf,则它们将被移到标记堆栈上并单独解析。

参数
string $option

要解析的选项。

array<string, mixed> $params

要将解析后的值追加到的参数

返回
array<string, mixed>
抛出
Cake\Console\Exception\ConsoleException
遇到未知的短选项时。

addArgument() ¶ public

addArgument(Cake\Console\ConsoleInputArgument|string $name, array<string, mixed> $params = []): $this

向选项解析器添加位置参数。

参数

  • help 要显示的此参数的帮助文本。
  • required 此参数是否必填。
  • index 参数的索引,如果未定义,则参数将放在参数末尾。如果你两次定义相同的索引,第一个选项将被覆盖。
  • choices 此参数的有效选项列表。如果留空,所有值都将有效。当 parse() 遇到无效值时,将引发异常。
参数
Cake\Console\ConsoleInputArgument|string $name

参数的名称。也可以接受 ConsoleInputArgument 实例。

array<string, mixed> $params optional

参数的参数,见上文。

返回
$this

addArguments() ¶ public

addArguments(array<string, array<string, mixed>Cake\Console\ConsoleInputArgument> $args): $this

一次添加多个参数。接受一个参数定义数组。键用作参数名称,值用作参数的参数。

参数
array<string, array<string, mixed>Cake\Console\ConsoleInputArgument> $args

要添加的参数数组。

返回
$this
另请参阅
\Cake\Console\ConsoleOptionParser::addArgument()

addOption() ¶ public

addOption(Cake\Console\ConsoleInputOption|string $name, array<string, mixed> $options = []): $this

向选项解析器添加选项。选项允许您为控制台应用程序定义可选参数或必填参数。选项由它们使用的参数定义。

选项

  • short - 此选项的单字母变体,如果无,则留空。
  • help - 此选项的帮助文本。在为选项生成帮助时使用。
  • default - 此选项的默认值。当附加选项未提供或没有值时,默认值将添加到解析后的参数中。使用 default 和 boolean 同时将不起作用。添加到解析后的参数中,当选项未定义时。默认为 null。
  • boolean - 选项不使用任何值,它只是一个布尔开关。默认为 false。如果选项定义为 boolean,它将始终添加到解析后的参数中。如果不存在,它将为 false,如果存在,它将为 true。
  • multiple - 选项可以多次提供。当启用此选项时,解析后的选项将是一个值数组。
  • choices 此选项的有效选项列表。如果留空,所有值都将有效。当 parse() 遇到无效值时,将引发异常。
参数
Cake\Console\ConsoleInputOption|string $name

你希望在解析选项时解析出值的长期名称。也可以接受 ConsoleInputOption 实例。

array<string, mixed> $options optional

定义选项行为的参数数组

返回
$this

addOptions() ¶ public

addOptions(array<string, mixed> $options): $this

一次添加多个选项。接受一个选项定义数组。键用作选项名称,值用作选项的参数。

参数
array<string, mixed> $options

要添加的选项数组。

返回
$this
另请参阅
\Cake\Console\ConsoleOptionParser::addOption()

argumentNames() ¶ public

argumentNames(): list<string>

获取参数名称列表。

返回
list<string>

arguments() ¶ public

arguments(): arrayCake\Console\ConsoleInputArgument>

获取解析器中定义的参数。

返回
arrayCake\Console\ConsoleInputArgument>

buildFromArray() ¶ public static

buildFromArray(array<string, mixed> $spec, bool $defaultOptions = true): static

从数组构建一个解析器。使用类似于以下的数组

$spec = [
     'description' => 'text',
     'epilog' => 'text',
     'arguments' => [
         // list of arguments compatible with addArguments.
     ],
     'options' => [
         // list of options compatible with addOptions
     ]
];
参数
array<string, mixed> $spec

用它来构建 OptionParser 的规范。

bool $defaultOptions optional

你是否希望设置详细和静默选项。

返回
static

create() ¶ public static

create(string $command, bool $defaultOptions = true): static

用于创建新 OptionParsers 的静态工厂方法,以便您可以将方法链接到它们。

参数
string $command

此解析器所属的命令名称。命令名称用于生成帮助信息。

bool $defaultOptions optional

你是否希望设置详细和静默选项。

返回
static

getCommand() ¶ public

getCommand(): string

获取 shell/task 的命令名称。

返回
string

getDescription() ¶ public

getDescription(): string

获取 shell/task 的描述文本。

返回
string

getEpilog() ¶ public

getEpilog(): string

获取尾声。

返回
string

help() ¶ public

help(string $format = 'text', int $width = 72): string

获取此解析器对象的格式化帮助信息。

根据解析器中的描述、选项、参数和尾声生成帮助文本。

参数
string $format optional

定义输出格式,可以是 text 或 XML

int $width optional

格式化用户内容的宽度。默认为 72

返回
string

merge() ¶ public

merge(Cake\Console\ConsoleOptionParser|array $spec): $this

获取或设置 shell/task 的命令名称。

参数
Cake\Console\ConsoleOptionParser|array $spec

要合并的 ConsoleOptionParser 或规范。

返回
$this

options() ¶ public

options(): array<string,Cake\Console\ConsoleInputOption>

获取解析器中定义的选项。

返回
array<string,Cake\Console\ConsoleInputOption>

parse() ¶ public

parse(array $argv, Cake\Console\ConsoleIo|null $io = null): array

将 argv 数组解析为一组参数和参数。

参数
array $argv

要解析的参数(argv)数组。

Cake\Console\ConsoleIo|null $io optional

ConsoleIo 实例或 null。如果为 null,则提示选项将出错。

返回
array
抛出
Cake\Console\Exception\ConsoleException
遇到无效参数时。

removeOption() ¶ public

removeOption(string $name): $this

从选项解析器中删除选项。

参数
string $name

要删除的选项名称。

返回
$this

setCommand() ¶ public

setCommand(string $text): $this

设置 shell/task 的命令名称。

参数
string $text

要设置的文本。

返回
$this

setDescription() ¶ public

setDescription(list<string>|string $text): $this

设置 shell/task 的描述文本。

参数
list<string>|string $text

要设置的文本。如果为数组,文本将使用 "\n" 进行拼接。

返回
$this

setEpilog() ¶ public

setEpilog(list<string>|string $text): $this

向解析器设置尾声。尾声在生成帮助信息时添加到选项和参数列表的末尾。

参数
list<string>|string $text

要设置的文本。如果为数组,文本将使用 "\n" 进行拼接。

返回
$this

setRootName() ¶ public

setRootName(string $name): $this

设置 HelpFormatter 中使用的根名称

参数
string $name

根命令名称

返回
$this

toArray() ¶ public

toArray(): array<string, mixed>

返回此解析器的数组表示形式。

返回
array<string, mixed>

属性详情

$_args ¶ protected

位置参数定义。

类型
arrayCake\Console\ConsoleInputArgument>

$_command ¶ protected

命令名称。

类型
string

$_description ¶ protected

描述文本 - 在生成帮助信息时显示在选项之前

类型
string

$_epilog ¶ protected

尾声文本 - 在生成帮助信息时显示在选项之后

类型
string

$_options ¶ protected

选项定义。

类型
array<string,Cake\Console\ConsoleInputOption>

$_shortOptions ¶ protected

短 -> 长选项映射,在使用 addOption() 时生成

类型
array<string, string>

$_tokens ¶ protected

args(argv)数组。

类型
array

$rootName ¶ protected

帮助输出中使用的根别名

类型
string
OpenHub
Pingping
Linode
  • 商业解决方案
  • 展示
  • 文档
  • 手册
  • API
  • 视频
  • 报告安全问题
  • 隐私政策
  • 标识和商标
  • 社区
  • 参与进来
  • 问题 (Github)
  • 烘焙坊
  • 精选资源
  • 培训
  • 聚会
  • 我的CakePHP
  • CakeFest
  • 时事通讯
  • LinkedIn
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • 帮助和支持
  • 论坛
  • Stack Overflow
  • IRC
  • Slack
  • 付费支持

使用 CakePHP API 文档 生成