Класс 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
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()
- $_subcommandSort protected
boolПараметр сортировки подкоманд
- $_subcommands protected
array<string,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): array<string>
Обработать аргумент и убедиться, что аргумент не превышает количество аргументов и является допустимым выбором.
Параметры
-
string$argument Аргумент для добавления
-
array$args Массив обработанных аргументов, к которому нужно добавить.
Возвращает
array<string>Выбрасывает
Cake\Console\Exception\ConsoleException_parseLongOption() protected
_parseLongOption(string $option, array<string, mixed> $params): array
Обработать значение для длинного параметра из $this->_tokens. Обрабатывает параметры с = в них.
Параметры
-
string$option Параметр для обработки.
-
array<string, mixed>$params params для добавления обработанного значения
Возвращает
array_parseOption() protected
_parseOption(string $name, array<string, mixed> $params): array<string, mixed>
Обработать параметр по его индексу имени.
Параметры
-
string$name Имя для обработки.
-
array<string, mixed>$params 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 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 Параметры для аргумента, см. выше.
Возвращает
$thisaddArguments() public
addArguments(array $args): $this
Добавить несколько аргументов сразу. Принимает массив определений аргументов. Ключи используются в качестве имён аргументов, а значения — в качестве параметров аргумента.
Параметры
-
array$args Массив аргументов для добавления.
Возвращает
$thisСм. также
addOption() public
addOption(Cake\Console\ConsoleInputOption|string $name, array<string, mixed> $options = []): $this
Добавить параметр к парсеру параметров. Параметры позволяют определить необязательные или обязательные параметры для вашего консольного приложения. Параметры определяются используемыми ими параметрами.
Параметры
-
short— Однобуквенный вариант этого параметра, оставьте неопределённым для отсутствия. -
help— Текст справки по этому параметру. Используется при генерации справки по параметру. -
default— Значение по умолчанию для этого параметра. Значения по умолчанию добавляются в обработанные параметры, когда соответствующий параметр не предоставлен или не имеет значения. Использование значений по умолчанию и булевых значений вместе не сработает. Значение по умолчанию — null. -
boolean— Параметр не использует значение, это просто переключатель. По умолчанию false. Если параметр определён как булевый, он всегда будет добавлен в обработанные параметры. Если параметр отсутствует, он будет false, если присутствует — true. -
multiple— Параметр может быть предоставлен несколько раз. Обработанный параметр будет массивом значений, когда этот параметр включён. -
choices— Список допустимых значений для этого параметра. Если оставлен пустым, все значения допустимы. При встрече недопустимого значения во время выполнения parse() будет вызвано исключение.
Параметры
-
Cake\Console\ConsoleInputOption|string$name Длинное имя, которое должно быть обработано при разборе параметров. Также принимает экземпляр ConsoleInputOption.
-
array<string, mixed>$options optional Массив параметров, определяющих поведение параметра
Возвращает
$thisaddOptions() public
addOptions(array<string, mixed> $options): $this
Добавить несколько параметров сразу. Принимает массив определений параметров. Ключи используются в качестве имён параметров, а значения — в качестве параметров параметра.
Параметры
-
array<string, mixed>$options Массив параметров для добавления.
Возвращает
$thisСм. также
addSubcommand() public
addSubcommand(Cake\Console\ConsoleInputSubcommand|string $name, array<string, mixed> $options = []): $this
Добавить подкоманду в список подкоманд. Подкоманды обычно представляют методы вашего Shell, но также могут использоваться для документирования задач.
Параметры
-
help— Текст справки по подкоманде. -
parser— ConsoleOptionParser для подкоманды. Это позволяет создавать специфичные для метода парсеры параметров. При генерации справки по подкоманде, если парсер присутствует, он будет использован.
Параметры
-
Cake\Console\ConsoleInputSubcommand|string$name Имя подкоманды. Также принимает экземпляр ConsoleInputSubcommand.
-
array<string, mixed>$options optional Массив параметров, см. выше.
Возвращает
$thisaddSubcommands() public
addSubcommands(array<string, mixed> $commands): $this
Добавить несколько подкоманд сразу.
Параметры
-
array<string, mixed>$commands Массив подкоманд.
Возвращает
$thisargumentNames() public
argumentNames(): array<string>
Получить список имён аргументов.
Возвращает
array<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
],
'subcommands' => [
// list of subcommands to add.
]
]; Параметры
-
array<string, mixed>$spec Спецификация для создания OptionParser.
-
bool$defaultOptions необязательно Указывает, нужно ли устанавливать опции verbose и quiet.
Возвращает
staticcreate() public static
create(string $command, bool $defaultOptions = true): static
Статический метод-фабрика для создания новых OptionParser, позволяющий цепочку вызовов методов.
Параметры
-
string$command Имя команды, для которой предназначен этот парсер. Имя команды используется для генерации справки.
-
bool$defaultOptions необязательно Указывает, нужно ли устанавливать опции verbose и quiet.
Возвращает
staticenableSubcommandSort() public
enableSubcommandSort(bool $value = true): $this
Включает сортировку подкоманд
Параметры
-
bool$value необязательно Указывает, нужно ли сортировать подкоманды
Возвращает
$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 необязательно Если указано и является действительной подкомандой, имеющей связанный парсер. Вместо этого будет показана справка по подкоманде.
-
string$format необязательно Определяет формат вывода, может быть текстовым или XML.
-
int$width необязательно Ширина форматирования пользовательского контента. По умолчанию 72.
Возвращает
stringisSubcommandSortEnabled() public
isSubcommandSortEnabled(): bool
Проверяет, включена ли сортировка для подкоманд.
Возвращает
boolmerge() public
merge(Cake\Console\ConsoleOptionParser|array $spec): $this
Получить или установить имя команды для оболочки/задачи.
Параметры
-
Cake\Console\ConsoleOptionParser|array$spec ConsoleOptionParser или спецификация для слияния.
Возвращает
$thisoptions() 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 в набор параметров и аргументов. Если $command не null и $command равен подкоманде, у которой есть парсер, будет использоваться этот парсер для обработки $argv.
Параметры
-
array$argv Массив аргументов (argv) для обработки.
-
Cake\Console\ConsoleIo|null$io необязательно Экземпляр ConsoleIo или null. Если null, то ошибки с опциями ввода/вывода.
Возвращает
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(array<string>|string $text): $this
Устанавливает текст описания для оболочки/задачи.
Параметры
-
array<string>|string$text Текст для установки. Если массив, текст будет объединен с помощью "\n".
Возвращает
$thissetEpilog() public
setEpilog(array<string>|string $text): $this
Устанавливает эпилог для парсера. Эпилог добавляется в конец списка опций и аргументов при генерации справки.
Параметры
-
array<string>|string$text Текст для установки. Если массив, текст будет объединен с помощью "\n".
Возвращает
$thissetRootName() public
setRootName(string $name): $this
Устанавливает корневое имя, используемое в HelpFormatter.
Параметры
-
string$name Имя корневой команды.
Возвращает
$thissubcommands() public
subcommands(): array<string,Cake\Console\ConsoleInputSubcommand>
Получить массив определенных подкоманд.
Возвращает
array<string,Cake\Console\ConsoleInputSubcommand>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>$_subcommandSort protected
Параметр сортировки подкоманд
Тип
bool$_subcommands protected
Подкоманды для этой оболочки.
Тип
array<string,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.4/class-Cake.Console.ConsoleOptionParser.html