Класс ConsoleOptionParser
Обрабатывает парсинг ARGV в командной строке и предоставляет поддержку определения опций, совместимых с GetOpt. Предоставляет реализацию паттерна билдера для создания парсеров опций командной строки.
Опции
Именованные аргументы имеют две формы: длинную и короткую. Длинные аргументы предваряются двумя тире и имеют более подробное имя опции. Например: --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 переключатель.
Краткое описание свойств
- $_args protected
Cake\Console\ConsoleInputArgument[]Определения позиционных аргументов.
- $_command protected
stringИмя команды.
- $_description protected
stringТекст описания — отображается перед опциями при генерации справки
- $_epilog protected
stringТекст эпилога — отображается после опций при генерации справки
- $_options protected
Cake\Console\ConsoleInputOption[]Определения опций.
- $_shortOptions protected
arrayКарта коротких -> длинных опций, генерируется при использовании addOption()
- $_subcommandSort protected
boolПараметр сортировки подкоманд
- $_subcommands protected
Cake\Console\ConsoleInputSubcommand[]Подкоманды для этой оболочки.
- $_tokens protected
arrayМассив аргументов (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
Добавляет сразу несколько параметров. Принимает массив определений параметров. Ключи используются в качестве имён параметров, а значения — в качестве параметров параметра.
-
addSubcommand() public
Добавляет подкоманду в список подкоманд. Подкоманды обычно являются методами вашего Shell, но также могут использоваться для документирования задач.
-
addSubcommands() public
Добавляет сразу несколько подкоманд.
-
argumentNames() public
Получает список имён аргументов.
-
arguments() public
Получает аргументы, определённые в анализаторе.
-
buildFromArray() public static
Создаёт анализатор из массива. Использует массив, подобный
-
create() public static
Статический фабричный метод для создания новых OptionParsers, чтобы вы могли вызывать методы с них.
-
enableSubcommandSort() public
Включает сортировку подкоманд
-
getCommand() public
Получает имя команды для оболочки/задачи.
-
getDescription() public
Получает текстовое описание для оболочки/задачи.
-
getEpilog() public
Получает эпилог.
-
help() public
Получает отформатированную справку для этого объекта анализатора.
-
isSubcommandSortEnabled() public
Проверяет, включена ли сортировка для подкоманд.
-
merge() public
Получает или устанавливает имя команды для оболочки/задачи.
-
options() public
Получает определённые параметры в анализаторе.
-
parse() public
Парсит массив argv в набор параметров и аргументов. Если $command не равен null и $command равен подкоманде, у которой есть анализатор, будет использоваться этот анализатор для парсинга $argv
-
removeOption() public
Удаляет параметр из анализатора параметров.
-
removeSubcommand() public
Удаляет подкоманду из анализатора параметров.
-
setCommand() public
Устанавливает имя команды для оболочки/задачи.
-
setDescription() public
Устанавливает текстовое описание для оболочки/задачи.
-
setEpilog() public
Устанавливает эпилог для анализатора. Эпилог добавляется в конец списка параметров и аргументов при генерации справки.
-
setRootName() public
Устанавливает имя корня, используемое в HelpFormatter
-
subcommands() public
Получает массив определённых подкоманд
-
toArray() public
Возвращает массивное представление этого анализатора.
Подробное описание методов
__construct() public
__construct(string $command = '', bool $defaultOptions = true)
Создайте OptionParser, чтобы определить его поведение
Параметры
-
string$command optional Имя команды, для которой предназначен этот парсер. Имя команды используется для генерации справки.
-
bool$defaultOptions optional Указывает, нужно ли устанавливать параметры verbose и quiet. Установка в значение 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): string[]
Обработать аргумент и убедиться, что аргумент не превышает количество аргументов и является допустимым выбором.
Параметры
-
string$argument Аргумент для добавления
-
array$args Массив обработанных аргументов, к которому нужно добавить.
Возвращает
string[]Выбрасывает
Cake\Console\Exception\ConsoleException_parseLongOption() protected
_parseLongOption(string $option, array $params): array
Обработать значение для длинного параметра из $this->_tokens. Обрабатывает параметры с = в них.
Параметры
-
string$option Параметр для обработки.
-
array$params params для добавления обработанного значения
Возвращает
array_parseOption() protected
_parseOption(string $name, array $params): array
Обработать параметр по его индексу имени.
Параметры
-
string$name Имя для обработки.
-
array$params params для добавления обработанного значения
Возвращает
arrayВыбрасывает
Cake\Console\Exception\ConsoleException_parseShortOption() protected
_parseShortOption(string $option, array $params): array
Обработать значение для короткого параметра из $this->_tokens. Если $option — это комбинация нескольких сокращений, таких как -otf, они будут перенесены в стек токенов и обработаны индивидуально.
Параметры
-
string$option Параметр для обработки.
-
array$params params для добавления обработанного значения
Возвращает
arrayВыбрасывает
Cake\Console\Exception\ConsoleExceptionПри обнаружении неизвестных коротких параметров.
addArgument() public
addArgument(Cake\Console\ConsoleInputArgument|string $name, array $params = []): $this
Добавить позиционный аргумент к парсеру параметров.
Параметры
-
helpТекст справки для отображения по этому аргументу. -
requiredТребуется ли этот параметр. -
indexИндекс аргумента; если не указан, аргумент будет добавлен в конец списка аргументов. Если вы задаёте один и тот же индекс дважды, первый вариант будет перезаписан. -
choicesСписок допустимых значений для этого аргумента. Если оставлен пустым, все значения допустимы. При встрече недопустимого значения во время выполнения parse() будет вызвано исключение.
Параметры
-
Cake\Console\ConsoleInputArgument|string$name Имя аргумента. Также принимает экземпляр ConsoleInputArgument.
-
array$params optional Параметры для аргумента, см. выше.
Возвращает
$thisaddArguments() public
addArguments(array $args): $this
Добавить несколько аргументов сразу. Принимает массив определений аргументов. Ключи используются в качестве имён аргументов, а значения — в качестве параметров аргумента.
Параметры
-
array$args Массив аргументов для добавления.
Возвращает
$thisСм. также
addOption() public
addOption(Cake\Console\ConsoleInputOption|string $name, array $options = []): $this
Добавить параметр к парсеру параметров. Параметры позволяют определить необязательные или обязательные параметры для вашего консольного приложения. Параметры определяются используемыми ими параметрами.
Параметры
-
short— Однобуквенный вариант этого параметра, оставьте неопределённым для отсутствия. -
help— Текст справки по этому параметру. Используется при генерации справки по параметру. -
default— Значение по умолчанию для этого параметра. Значения по умолчанию добавляются в обработанные параметры, когда соответствующий параметр не предоставлен или не имеет значения. Использование значений по умолчанию и булевых значений вместе не сработает. Значение по умолчанию — null. -
boolean— Параметр не использует значение, это просто переключатель. По умолчанию false. Если параметр определён как булевый, он всегда будет добавлен в обработанные параметры. Если параметр отсутствует, он будет false, если присутствует — true. -
multiple— Параметр может быть предоставлен несколько раз. Обработанный параметр будет массивом значений, когда этот параметр включён. -
choices— Список допустимых значений для этого параметра. Если оставлен пустым, все значения допустимы. При встрече недопустимого значения во время выполнения parse() будет вызвано исключение.
Параметры
-
Cake\Console\ConsoleInputOption|string$name Длинное имя, которое должно быть обработано при разборе параметров. Также принимает экземпляр ConsoleInputOption.
-
array$options optional Массив параметров, определяющих поведение параметра
Возвращает
$thisaddOptions() public
addOptions(array $options): $this
Добавить несколько параметров сразу. Принимает массив определений параметров. Ключи используются в качестве имён параметров, а значения — в качестве параметров параметра.
Параметры
-
array$options Массив параметров для добавления.
Возвращает
$thisСм. также
addSubcommand() public
addSubcommand(Cake\Console\ConsoleInputSubcommand|string $name, array $options = []): $this
Добавить подкоманду в список подкоманд. Подкоманды обычно представляют методы вашего Shell, но также могут использоваться для документирования задач.
Параметры
-
help— Текст справки по подкоманде. -
parser— ConsoleOptionParser для подкоманды. Это позволяет создавать специфичные для метода парсеры параметров. При генерации справки по подкоманде, если парсер присутствует, он будет использован.
Параметры
-
Cake\Console\ConsoleInputSubcommand|string$name Имя подкоманды. Также принимает экземпляр ConsoleInputSubcommand.
-
array$options optional Массив параметров, см. выше.
Возвращает
$thisaddSubcommands() public
addSubcommands(array $commands): $this
Добавить несколько подкоманд сразу.
Параметры
-
array$commands Массив подкоманд.
Возвращает
$thisargumentNames() public
argumentNames(): string[]
Получить список имён аргументов.
Возвращает
string[]arguments() public
arguments(): Cake\Console\ConsoleInputArgument[]
Получить аргументы, определённые в парсере.
Возвращает
Cake\Console\ConsoleInputArgument[]buildFromArray() public static
buildFromArray(array $spec, bool $defaultOptions = true): static
Создать парсер из массива. Использует массив, подобный
$spec = [
'description' => 'text',
'epilog' => 'text',
'arguments' => [
// list of arguments compatible with addArguments.
],
'options' => [
// list of options compatible with addOptions
],
'subcommands' => [
// list of subcommands to add.
]
]; Параметры
-
array$spec Спецификация для создания OptionParser.
-
bool$defaultOptions optional Указать, нужно ли устанавливать опции verbose и quiet.
Возвращает
staticcreate() public static
create(string $command, bool $defaultOptions = true): static
Статический фабричный метод для создания новых OptionParsers, чтобы вы могли использовать цепочку методов.
Параметры
-
string$command Имя команды, для которой предназначен этот парсер. Имя команды используется для генерации справки.
-
bool$defaultOptions optional Указать, нужно ли устанавливать опции verbose и quiet.
Возвращает
staticenableSubcommandSort() public
enableSubcommandSort(bool $value = true): $this
Включает сортировку подкоманд
Параметры
-
bool$value optional Включить или отключить сортировку подкоманд
Возвращает
$thisgetCommand() public
getCommand(): string
Получает имя команды для оболочки/задачи.
Возвращает
stringgetDescription() public
getDescription(): string
Получает текстовое описание для оболочки/задачи.
Возвращает
stringgetEpilog() public
getEpilog(): string
Получает эпилог.
Возвращает
stringhelp() public
help(string|null $subcommand = null, string $format = 'text', int $width = 72): string
Получает отформатированную справку для этого объекта парсера.
Генерирует текст справки на основе описания, опций, аргументов, подкоманд и эпилога в парсере.
Параметры
-
string|null$subcommand optional Если присутствует и является валидной подкомандой с связанным парсером. Вместо этого будет показана справка по этой подкоманде.
-
string$format optional Определяет формат вывода, может быть текстовым или XML.
-
int$width optional Ширина для форматирования пользовательского контента. По умолчанию 72.
Возвращает
stringisSubcommandSortEnabled() public
isSubcommandSortEnabled(): bool
Проверяет, включена ли сортировка подкоманд.
Возвращает
boolmerge() public
merge(arrayCake\Console\ConsoleOptionParser $spec): $this
Получить или установить имя команды для оболочки/задачи.
Параметры
-
arrayCake\Console\ConsoleOptionParser$spec ConsoleOptionParser или спецификация для слияния.
Возвращает
$thisoptions() public
options(): Cake\Console\ConsoleInputOption[]
Получить определённые опции в парсере.
Возвращает
Cake\Console\ConsoleInputOption[]parse() public
parse(array $argv): array
Разбирает массив argv на набор параметров и аргументов. Если $command не равен null и $command равен подкоманде с парсером, будет использован этот парсер для разбора $argv
Параметры
-
array$argv Массив аргументов (argv) для разбора.
Возвращает
arrayИсключения
Cake\Console\Exception\ConsoleExceptionПри возникновении неверного параметра.
removeOption() public
removeOption(string $name): $this
Удаляет опцию из парсера опций.
Параметры
-
string$name Имя опции для удаления.
Возвращает
$thisremoveSubcommand() public
removeSubcommand(string $name): $this
Удаляет подкоманду из парсера опций.
Параметры
-
string$name Имя подкоманды для удаления.
Возвращает
$thissetCommand() public
setCommand(string $text): $this
Устанавливает имя команды для оболочки/задачи.
Параметры
-
string$text Текст для установки.
Возвращает
$thissetDescription() public
setDescription(string|array $text): $this
Устанавливает текстовое описание для оболочки/задачи.
Параметры
-
string|array$text Текст для установки. Если массив, текст будет объединён с помощью "\n".
Возвращает
$thissetEpilog() public
setEpilog(string|array $text): $this
Устанавливает эпилог для парсера. Эпилог добавляется в конец списка опций и аргументов при генерации справки.
Параметры
-
string|array$text Текст для установки. Если массив, текст будет объединён с помощью "\n".
Возвращает
$thissetRootName() public
setRootName(string $name): $this
Устанавливает корневое имя, используемое в HelpFormatter
Параметры
-
string$name Имя корневой команды
Возвращает
$thissubcommands() public
subcommands(): Cake\Console\ConsoleInputSubcommand[]
Получить массив определённых подкоманд
Возвращает
Cake\Console\ConsoleInputSubcommand[]toArray() public
toArray(): array
Возвращает массивное представление этого парсера.
Возвращает
arrayПодробное описание свойства
$_args protected
Определения позиционных аргументов.
Тип
Cake\Console\ConsoleInputArgument[]$_command protected
Имя команды.
Тип
string$_description protected
Текст описания — отображается перед параметрами при генерации справки
Тип
string$_epilog protected
Текст эпилога — отображается после параметров при генерации справки
Тип
string$_options protected
Определения параметров.
Тип
Cake\Console\ConsoleInputOption[]$_shortOptions protected
Маппинг коротких —> длинных параметров, генерируется при использовании addOption()
Тип
array$_subcommandSort protected
Параметр сортировки подкоманд
Тип
bool$_subcommands protected
Подкоманды для данной оболочки.
Тип
Cake\Console\ConsoleInputSubcommand[]$_tokens protected
Массив аргументов (argv).
Тип
array$rootName protected
Базовый псевдоним, используемый в выводе справки
Тип
string
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.2/class-Cake.Console.ConsoleOptionParser.html