Класс ConsoleOptionParser
Обрабатывает парсинг ARGV в командной строке и предоставляет поддержку определения опций, совместимых с GetOpt. Предоставляет реализацию паттерна билдера для создания парсеров командной строки.
Опции
Именованные аргументы представлены в двух форматах: длинном и коротком. Длинные аргументы предваряются двумя тире и имеют более подробное имя опции. Например: --version. Короткие аргументы предваряются одним тире и имеют длину только один символ. Обычно они соответствуют длинной опции и представляют более краткую альтернативу.
Использование опций
Опции могут быть определены с использованием как длинной, так и короткой формы. Используя $parser->addOption(), вы можете определить новые опции. Имя опции используется в качестве её длинной формы, и вы можете указать дополнительную короткую форму с помощью short опции. Короткие опции должны иметь длину только один символ. Использование более одного символа для короткой опции вызовет исключение.
Вызов опций может осуществляться с использованием синтаксиса, аналогичного большинству *nix инструментов командной строки. Длинные опции могут содержать = или опускать его.
cake myshell command --connection default --name=something
Короткие опции могут быть определены по отдельности или группами.
cake myshell command -cn
Короткие опции могут быть объединены в группы, как показано выше. Каждый символ в группе будет рассматриваться как отдельная опция. Предыдущий пример эквивалентен:
cake myshell command -c -n
Короткие опции также могут принимать значения:
cake myshell command -c default
Позиционные аргументы
Если позиционные аргументы не определены, все они будут обработаны. Если вы определите позиционные аргументы, любые аргументы, превышающие их количество, вызовут исключения. Кроме того, вы можете объявить аргументы необязательными, установив параметр required в значение false.
$parser->addArgument('model', ['required' => false]); Предоставление текста справки
Предоставив текст справки для своих позиционных аргументов и именованных аргументов, ConsoleOptionParser может сгенерировать для вас отображение справки. Вы можете просмотреть справку для оболочек, используя --help или -h переключатель.
Краткое описание свойств
-
$_argsprotectedОпределения позиционных аргументов.array -
$_commandprotectedИмя команды.string -
$_descriptionprotectedТекст описания — отображается перед опциями при генерации справкиstring -
$_epilogprotectedТекст эпилога — отображается после опций при генерации справкиstring -
$_optionsprotectedОпределения опций.array -
$_shortOptionsprotectedКарта коротких -> длинных опций, генерируемая при использовании addOption()string -
$_subcommandsprotectedПодкоманды для этой оболочки.array -
$_tokensprotectedМассив аргументов (argv).array
Краткое описание методов
- __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
Добавление подкоманды в список подкоманд. Подкоманды обычно являются методами вашей оболочки, но также могут использоваться для документирования задач.
- addSubcommands() publicДобавление сразу нескольких подкоманд.
- arguments() publicПолучение аргументов, определённых в парсере.
- Создание парсера из массива. Использует массив, похожий на
- command() publicПолучение или установка имени команды для оболочки/задачи.
- Статический фабричный метод для создания новых OptionParser, чтобы вы могли вызывать методы по цепочке.
- description() publicПолучение или установка текста описания для оболочки/задачи.
- epilog() public
Получение или установка эпилога для парсера. Эпилог добавляется в конец списка опций и аргументов при генерации справки.
- help() public
Получение отформатированной справки для этого объекта парсера. Генерирует текст справки на основе описания, опций, аргументов, подкоманд и эпилога в парсере.
- merge() publicПолучение или установка имени команды для оболочки/задачи.
- options() publicПолучение определённых опций в парсере.
- parse() public
Обработка массива argv в набор параметров и аргументов. Если $command не равен null и $command равен подкоманде, у которой есть парсер, будет использован этот парсер для обработки $argv
- removeOption() publicУдаление опции из парсера опций.
- removeSubcommand() publicУдаление подкоманды из парсера опций.
- subcommands() publicПолучение массива определённых подкоманд
- toArray() publicВозвращает массивное представление этого парсера.
Подробное описание методов
__construct()source public
__construct( string|null $command null , boolean $defaultOptions true )
Конструктор OptionParser, позволяющий определить его поведение
Параметры
- string|null
$commandнеобязательно null - Имя команды, для которой предназначен этот парсер. Имя команды используется для генерации справки.
- boolean
$defaultOptionsнеобязательно true Указывает, хотите ли вы задать опции verbose и quiet. Установка этого значения в false предотвратит добавление опций
--verboseи--quiet.
_nextToken()source protected
_nextToken( )
Найти следующий токен в наборе argv.
Возвращает
stringследующий токен или ''
_optionExists()source protected
_optionExists( string $name )
Проверить, определён ли для $name параметр (короткий/длинный).
Параметры
- string
$name - Имя параметра.
Возвращает
boolean_parseArg()source protected
_parseArg( string $argument , array $args )
Обработать аргумент и убедиться, что аргумент не превышает количество аргументов и что аргумент является допустимым выбором.
Параметры
- string
$argument - Аргумент для добавления
- array
$args - Массив обработанных аргументов для добавления.
Возвращает
arrayАргументы
Выбрасывает
Cake\Console\Exception\ConsoleException_parseLongOption()source protected
_parseLongOption( string $option , array $params )
Обработать значение для длинного параметра из $this->_tokens. Обработает параметры с = в них.
Параметры
- string
$option - Параметр для обработки.
- array
$params - Параметры для добавления обработанного значения
Возвращает
arrayПараметры с добавленным $option
_parseOption()source protected
_parseOption( string $name , array $params )
Обработать параметр по его индексу имени.
Параметры
- string
$name - Имя для обработки.
- array
$params - Параметры для добавления обработанного значения
Возвращает
arrayПараметры с добавленным $option
Выбрасывает
Cake\Console\Exception\ConsoleException_parseShortOption()source protected
_parseShortOption( string $option , array $params )
Обработать значение для короткого параметра из $this->_tokens Если $option является комбинацией нескольких сокращений, таких как -otf, они будут перемещены в стек токенов и обработаны индивидуально.
Параметры
- string
$option - Параметр для обработки.
- array
$params - Параметры для добавления обработанного значения
Возвращает
arrayПараметры с добавленным $option
Выбрасывает
Cake\Console\Exception\ConsoleExceptionПри обнаружении неизвестных коротких параметров.
addArgument()source public
addArgument( Cake\Console\ConsoleInputArgument|string $name , array $params [] )
Добавить позиционный аргумент к парсеру параметров.
Параметры
-
helpТекст справки для отображения для этого аргумента. -
requiredЯвляется ли этот параметр обязательным. -
indexИндекс аргумента, если он не определен, аргумент будет добавлен в конец аргументов. Если вы определите один и тот же индекс дважды, первый параметр будет перезаписан. -
choicesСписок допустимых вариантов для этого аргумента. Если оставлено пустым, все значения допустимы. При встрече недопустимого значения будет возбуждено исключение.
Параметры
-
Cake\Console\ConsoleInputArgument|string$name Название аргумента. Также принимает экземпляр ConsoleInputArgument.
- array
$paramsoptional [] - Параметры для аргумента, см. выше.
Возвращает
$this
addArguments()source public
addArguments( array $args )
Добавить сразу несколько аргументов. Принимает массив определений аргументов. Ключи используются как имена аргументов, а значения — как параметры аргумента.
Параметры
- array
$args - Массив аргументов для добавления.
Возвращает
$this
См. также
\Cake\Console\ConsoleOptionParser::addArgument()addOption()source public
addOption( Cake\Console\ConsoleInputOption|string $name , array $options [] )
Добавить параметр к парсеру параметров. Параметры позволяют определять необязательные или обязательные параметры для вашего консольного приложения. Параметры определяются используемыми ими параметрами.
Параметры
-
short- Однобуквенный вариант этого параметра, оставьте не определённым для отсутствия. -
help- Текст справки для этого параметра. Используется при генерации справки по параметру. -
default- Значение по умолчанию для этого параметра. Значения по умолчанию добавляются в обработанные параметры, когда прикреплённый параметр не указан или не имеет значения. Использование значения по умолчанию и булевого типа вместе не сработает. добавляются в обработанные параметры, когда параметр не определён. По умолчанию null. -
boolean- Параметр не использует значение, это просто булевая переключатель. По умолчанию false. Если параметр определён как булевый, он всегда будет добавлен в обработанные параметры. Если его нет, он будет false, если есть, он будет true. -
multiple- Параметр может быть указан несколько раз. Обработанный параметр будет массивом значений, когда этот параметр включен. -
choicesСписок допустимых вариантов для этого параметра. Если оставлено пустым, все значения допустимы. При встрече недопустимого значения будет возбуждено исключение.
Параметры
-
Cake\Console\ConsoleInputOption|string$name Длинное имя, которое вы хотите, чтобы значение было обработано при обработке параметров. Также принимает экземпляр ConsoleInputOption
- array
$optionsoptional [] - Массив параметров, определяющих поведение параметра
Возвращает
$this
addOptions()source public
addOptions( array $options )
Добавить сразу несколько параметров. Принимает массив определений параметров. Ключи используются как имена параметров, а значения — как параметры параметра.
Параметры
- array
$options - Массив параметров для добавления.
Возвращает
$this
См. также
\Cake\Console\ConsoleOptionParser::addOption()addSubcommand()source public
addSubcommand( Cake\Console\ConsoleInputSubcommand|string $name , array $options [] )
Добавить подкоманду к списку подкоманд. Подкоманды обычно являются методами в вашем Shell, но также могут использоваться для документирования задач.
Параметры
-
help- Текст справки для подкоманды. -
parser- ConsoleOptionParser для подкоманды. Это позволяет создавать специфичные для метода парсеры параметров. При генерации справки по подкоманде, если парсер присутствует, он будет использоваться.
Параметры
-
Cake\Console\ConsoleInputSubcommand|string$name - Имя подкоманды. Также принимает экземпляр ConsoleInputSubcommand
- array
$optionsoptional [] - Массив параметров, см. выше.
Возвращает
$this
addSubcommands()source public
addSubcommands( array $commands )
Добавить сразу несколько подкоманд.
Параметры
- array
$commands - Массив подкоманд.
Возвращает
$this
arguments()source public
arguments( )
Получить аргументы, определённые в парсере.
Возвращает
arrayМассив описаний аргументов
buildFromArray()source public static
buildFromArray( array $spec , boolean $defaultOptions true )
Создать парсер из массива. Использует массив, подобный
$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.
- boolean
$defaultOptionsoptional true - Нужно ли установить параметры verbose и quiet.
Возвращает
$this
command()source public
command( string|null $text null )
Получает или задаёт имя команды для командной оболочки/задачи.
Параметры
- string|null
$textнеобязательно null - Текст для задания или null, если нужно прочитать
Возвращает
string|Cake\Console\ConsoleOptionParser$this Если чтение, значение команды. Если установка, будет возвращён $this
create()source public static
create( string|null $command , boolean $defaultOptions true )
Статический фабричный метод для создания новых парсеров опций, позволяющий цепочку вызовов методов.
Параметры
- string|null
$command - Имя команды, для которой предназначен этот парсер. Имя команды используется для генерации справки.
- boolean
$defaultOptionsнеобязательно true - Указывает, нужно ли устанавливать опции verbose и quiet.
Возвращает
$this
description()source public
description( string|array|null $text null )
Получение или установка текстового описания для командной оболочки/задачи.
Параметры
- string|array|null
$textнеобязательно null Текст для установки или null, если нужно прочитать. Если массив, текст будет объединён с помощью "\n".
Возвращает
string|Cake\Console\ConsoleOptionParser$this Если чтение, значение описания. Если установка, будет возвращён $this
epilog()source public
epilog( string|array|null $text null )
Получение или установка эпилога парсера. Эпилог добавляется в конец списка опций и аргументов при генерации справки.
Параметры
- string|array|null
$textнеобязательно null Текст при установке или null при чтении. Если массив, текст будет объединён с помощью "\n".
Возвращает
string|Cake\Console\ConsoleOptionParser$this Если чтение, значение эпилога. Если установка, будет возвращён $this
help()source public
help( string|null $subcommand null , string $format 'text' , integer $width 72 )
Получает отформатированную справку для этого объекта парсера. Генерирует текст справки на основе описания, опций, аргументов, подкоманд и эпилога в парсере.
Параметры
- string|null
$subcommandнеобязательно null Если задано и является действительной подкомандой, имеющей связанный парсер. Будет показана справка по подкоманде вместо справки по парсеру.
- string
$formatнеобязательно 'text' - Определяет формат вывода, может быть text или xml
- integer
$widthнеобязательно 72 - Ширина для форматирования пользовательского контента. По умолчанию 72
Возвращает
stringСгенерированная справка.
merge()source public
merge( array|Cake\Console\ConsoleOptionParser $spec )
Получение или установка имени команды для командной оболочки/задачи.
Параметры
- array|
Cake\Console\ConsoleOptionParser$spec - ConsoleOptionParser или спецификация для слияния.
Возвращает
$this
parse()source public
parse( array $argv )
Разбор массива argv в набор параметров и аргументов. Если $command не null и $command равен подкоманде, имеющей парсер, будет использован этот парсер для разбора $argv.
Параметры
- array
$argv - Массив аргументов (argv) для разбора.
Возвращает
array[$params, $args]
Выбрасывает
Cake\Console\Exception\ConsoleExceptionПри обнаружении недопустимого параметра.
removeOption()source public
removeOption( string $name )
Удаление опции из парсера опций.
Параметры
- string
$name - Имя опции для удаления.
Возвращает
$this
removeSubcommand()source public
removeSubcommand( string $name )
Удаление подкоманды из парсера опций.
Параметры
- string
$name - Имя подкоманды для удаления.
Возвращает
$this
Подробное описание свойств
$_argssource
protected array
Определения позиционных аргументов.
См. также
\Cake\Console\ConsoleOptionParser::addArgument()[]
$_descriptionsource
protected string
Текст описания — отображается перед опциями при генерации справки
См. также
\Cake\Console\ConsoleOptionParser::description()null
$_epilogsource
protected string
Текст эпилога — отображается после опций при генерации справки
См. также
\Cake\Console\ConsoleOptionParser::epilog()null
$_optionssource
protected array
Определения опций.
См. также
\Cake\Console\ConsoleOptionParser::addOption()[]
$_shortOptionssource
protected string
Отображение опций коротких кодов -> длинных опций, сгенерировано при использовании addOption()
[]
$_subcommandssource
protected array
Подкоманды для этой оболочки.
См. также
\Cake\Console\ConsoleOptionParser::addSubcommand()[]
© 2005–2017 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/3.3/class-Cake.Console.ConsoleOptionParser.html