Класс 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 param в 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
Добавляет подкоманду в список подкоманд. Подкоманды обычно являются методами вашего Shell, но также могут использоваться для документирования задач.
- addSubcommands() publicДобавляет сразу несколько подкоманд.
- arguments() publicПолучает аргументы, определённые в парсере.
- Создаёт парсер из массива. Использует массив, подобный
- command() publicПолучает или устанавливает имя команды для shell/задачи.
- Статический фабричный метод для создания новых OptionParser, позволяющий цепочку вызовов методов.
- description() publicПолучает или устанавливает текст описания для shell/задачи.
- epilog() public
Получает или устанавливает эпилог для парсера. Эпилог добавляется в конец списка опций и аргументов при генерации справки.
- help() public
Получает отформатированную справку для этого объекта парсера. Генерирует текст справки на основе описания, опций, аргументов, подкоманд и эпилога в парсере.
- merge() publicПолучает или устанавливает имя команды для shell/задачи.
- 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
$commandoptional null - Имя команды, для которой предназначен этот парсер. Имя команды используется для генерации справки.
- boolean
$defaultOptionsoptional 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 - Массив обработанных аргументов для добавления.
Возвращает
arrayArgs
Исключения
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. -
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 )
Статический фабричный метод для создания новых OptionParsers, чтобы вы могли цеплять методы к ним.
Параметры
- 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–2016 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.
http://api.cakephp.org/3.2/class-Cake.Console.ConsoleOptionParser.html