Класс 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', array('required' => false));
Предоставление текстов справки
Предоставляя тексты справки для ваших позиционных аргументов и именованных аргументов, ConsoleOptionParser может сгенерировать для вас отображение справки. Вы можете просмотреть справку для оболочек, используя переключатель --help или -h.
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Console/ConsoleOptionParser.php
Краткое описание свойств
-
$_argsprotectedОпределения позиционных аргументов.array -
$_commandprotectedИмя команды.string -
$_descriptionprotectedТекст описания — отображается перед опциями при генерации справки.string -
$_epilogprotectedТекст эпилога — отображается после опций при генерации справки.string -
$_optionsprotectedОпределения опций.array -
$_shortOptionsprotectedКарта коротких -> длинных опций, генерируется при использовании addOption()string -
$_subcommandsprotectedПодкоманды для данной оболочки.array
Краткое описание методов
- __construct() publicСоздает парсер опций, чтобы вы могли определить его поведение.
- _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Получает или устанавливает имя команды для оболочки/задачи.
- Статический метод-фабрика для создания новых парсеров опций, с помощью которых вы можете вызывать методы.
- description() publicПолучает или устанавливает текст описания для оболочки/задачи.
- epilog() public
Получает или устанавливает эпилог парсера. Эпилог добавляется в конец списка опций и аргументов при генерации справки.
- help() public
Получает отформатированную справку для данного объекта парсера. Генерирует текст справки на основе описания, опций, аргументов, подкоманд и эпилога в парсере.
- options() publicПолучает определенные опции в парсере.
- parse() public
Обрабатывает массив argv в набор параметров и аргументов. Если $command не равен null и $command равен подкоманде, у которой есть парсер, будет использован этот парсер для обработки $argv.
- removeSubcommand() publicУдаляет подкоманду из парсера опций.
- subcommands() publicПолучает массив определенных подкоманд.
Подробное описание методов
__construct()source public
__construct( string $command null , boolean $defaultOptions true )
Создает парсер опций, чтобы вы могли определить его поведение
Параметры
- строка
$commandнеобязательный null - Имя команды, для которой предназначен этот парсер. Имя команды используется для генерации справки.
- логический
$defaultOptionsнеобязательный true Указывает, хотите ли вы установить опции verbose и quiet. Установка значения false предотвратит добавление опций
--verboseи--quiet.
_nextToken()source protected
_nextToken( )
Находит следующий токен в наборе argv.
Возвращает
строкаследующий токен или ''
_optionExists()source protected
_optionExists( string $name )
Проверяет, определена ли для $name опция (короткая/длинная).
Параметры
- строка
$name - Имя опции.
Возвращает
логический_parseArg()source protected
_parseArg( string $argument , array $args )
Обработать аргумент и убедиться, что аргумент не превышает количество аргументов и что аргумент является допустимым выбором.
Параметры
- строка
$argument - Аргумент для добавления
- массив
$args - Массив обработанных аргументов для добавления.
Возвращает
массивАргументы
Выбрасывает
ConsoleException_parseLongOption()source protected
_parseLongOption( string $option , array $params )
Обработать значение для длинного параметра из $this->_tokens. Обработает параметры с = в них.
Параметры
- строка
$option - Параметр для обработки.
- массив
$params - Параметры для добавления обработанного значения.
Возвращает
массивПараметры с добавленным $option.
_parseOption()source protected
_parseOption( string $name , array $params )
Обработать параметр по его индексу имени.
Параметры
- строка
$name - Имя для обработки.
- массив
$params - Параметры для добавления обработанного значения.
Возвращает
массивПараметры с добавленным $option.
Выбрасывает
ConsoleException_parseShortOption()source protected
_parseShortOption( string $option , array $params )
Обработать значение для короткого параметра из $this->_tokens. Если $option является комбинацией нескольких сокращений, таких как -otf, они будут перемещены в стек маркеров и обработаны индивидуально.
Параметры
- строка
$option - Параметр для обработки.
- массив
$params - Параметры для добавления обработанного значения.
Возвращает
массивПараметры с добавленным $option.
Выбрасывает
ConsoleExceptionПри обнаружении неизвестных коротких параметров.
addArgument()source public
addArgument( ConsoleInputArgument|string $name , array $params array() )
Добавить позиционный аргумент к обработчику параметров.
Параметры
-
helpТекст справки для отображения для этого аргумента. -
requiredЯвляется ли этот параметр обязательным. -
indexИндекс для аргумента; если не определен, аргумент будет добавлен в конец аргументов. Если вы определите тот же индекс дважды, первый параметр будет перезаписан. -
choicesСписок допустимых значений для этого аргумента. Если оставлен пустым, все значения допустимы. Исключение будет возбуждено при встрече недопустимого значения в parse().
Параметры
-
ConsoleInputArgument|строка$name - Название аргумента. Также принимает экземпляр ConsoleInputArgument
- массив
$paramsнеобязательно массив() - Параметры для аргумента, см. выше.
Возвращает
ConsoleOptionParseraddArguments()source public
addArguments( array $args )
Добавить сразу несколько аргументов. Принимает массив определений аргументов. Ключи используются в качестве имён аргументов, а значения — в качестве параметров аргумента.
Параметры
- массив
$args - Массив добавляемых аргументов.
Возвращает
ConsoleOptionParserСм. также
ConsoleOptionParser::addArgument()addOption()source public
addOption( ConsoleInputOption|string $name , array $options array() )
Добавить параметр к обработчику параметров. Параметры позволяют определять необязательные или обязательные параметры для вашего консольного приложения. Параметры определяются используемыми ими параметрами.
Параметры
-
short— Однобуквенный вариант этого параметра, оставить неопределённым для отсутствия. -
help— Текст справки для этого параметра. Используется при генерации справки по параметру. -
default— Значение по умолчанию для этого параметра. Значения по умолчанию добавляются в обработанные параметры, когда связанный параметр не предоставлен или не имеет значения. Использование значения по умолчанию и логического параметра вместе не будет работать. добавляются в обработанные параметры, когда параметр не определен. По умолчанию равно null. -
boolean— Параметр не использует значение, это просто переключатель. По умолчанию false. Если параметр определён как логический, он всегда будет добавлен в обработанные параметры. Если отсутствует, будет false, если присутствует — true. -
choicesСписок допустимых значений для этого параметра. Если оставлен пустым, все значения допустимы. Исключение будет возбуждено при встрече недопустимого значения в parse().
Параметры
-
ConsoleInputOption|строка$name Длинное имя, которое вы хотите использовать для обработки значения, когда обрабатываются параметры. Также принимает экземпляр ConsoleInputOption
- массив
$optionsнеобязательно массив() - Массив параметров, определяющих поведение параметра
Возвращает
ConsoleOptionParseraddOptions()source public
addOptions( array $options )
Добавить сразу несколько параметров. Принимает массив определений параметров. Ключи используются в качестве имён параметров, а значения — в качестве параметров параметра.
Параметры
- массив
$options - Массив добавляемых параметров.
Возвращает
ConsoleOptionParserСм. также
ConsoleOptionParser::addOption()addSubcommand()source public
addSubcommand( ConsoleInputSubcommand|string $name , array $options array() )
Добавить подкоманду в список подкоманд. Подкоманды обычно являются методами в вашей оболочке, но также могут использоваться для документирования задач.
Параметры
-
help— Текст справки для подкоманды. -
parser— ConsoleOptionParser для подкоманды. Это позволяет создавать специфичные для метода обработчики параметров. При генерации справки для подкоманды, если обработчик присутствует, он будет использован.
Параметры
-
ConsoleInputSubcommand|строка$name - Имя подкоманды. Также принимает экземпляр ConsoleInputSubcommand
- массив
$optionsнеобязательно массив() - Массив параметров, см. выше.
Возвращает
ConsoleOptionParseraddSubcommands()source public
addSubcommands( array $commands )
Добавить сразу несколько подкоманд.
Параметры
- массив
$commands - Массив подкоманд.
Возвращает
ConsoleOptionParserarguments()source public
arguments( )
Получить аргументы, определённые в обработчике.
Возвращает
массивМассив описаний аргументов
buildFromArray()source public static
buildFromArray( array $spec )
Создать обработчик из массива. Использует массив, похожий на
$spec = array(
'description' => 'text',
'epilog' => 'text',
'arguments' => array(
// list of arguments compatible with addArguments.
),
'options' => array(
// list of options compatible with addOptions
),
'subcommands' => array(
// list of subcommands to add.
)
); Параметры
- массив
$spec - Спецификация для создания OptionParser.
Возвращает
ConsoleOptionParsercommand()source public
command( string $text null )
Получить или установить имя команды для оболочки/задачи.
Параметры
- строка
$textнеобязательно null - Текст для установки или null, если вы хотите считать
Возвращает
строка|ConsoleOptionParserПри чтении — значение команды. При установке — $this.
create()source public static
create( string $command , boolean $defaultOptions true )
Статический фабричный метод для создания новых OptionParser, чтобы вы могли прицеплять методы к ним.
Параметры
- строка
$command - Имя команды, для которой предназначен этот обработчик. Имя команды используется для генерации справки.
- логическое значение
$defaultOptionsнеобязательно true - Нужно ли устанавливать параметры verbose и quiet.
Возвращает
ConsoleOptionParserdescription()source public
description( string|array $text null )
Получить или установить текст описания для командной строки/задачи.
Параметры
- string|array
$textнеобязательный null Текст для установки или null, если нужно прочитать. Если массив, текст будет объединён с помощью "\n"
Возвращает
string|ConsoleOptionParserПри чтении, значение описания. При установке возвращается $this.
epilog()source public
epilog( string|array $text null )
Получить или установить эпилог для парсера. Эпилог добавляется в конец списка параметров и аргументов при генерации справки.
Параметры
- string|array
$textнеобязательный null - Текст при установке или null при чтении. Если массив, текст будет объединён с помощью "\n"
Возвращает
string|ConsoleOptionParserПри чтении, значение эпилога. При установке возвращается $this.
help()source public
help( string $subcommand null , string $format 'text' , integer $width 72 )
Получает отформатированную справку для этого объекта парсера. Генерирует текст справки на основе описания, параметров, аргументов, подкоманд и эпилога в парсере.
Параметры
- string
$subcommandнеобязательный null Если присутствует и является корректной подкомандой с привязанным парсером. Будет показана справка этой подкоманды.
- string
$formatнеобязательный 'text' - Определяет формат вывода, может быть 'text' или 'xml'
- integer
$widthнеобязательный 72 - Ширина для форматирования содержимого. По умолчанию 72
Возвращает
stringСгенерированная справка.
parse()source public
parse( array $argv , string $command null )
Разбирает массив argv на набор параметров и аргументов. Если $command не null и $command равен подкоманде с парсером, используется этот парсер для разбора $argv.
Параметры
- array
$argv - Массив аргументов (argv) для разбора.
- string
$commandнеобязательный null Подкоманда для использования. Если этот параметр является подкомандой с парсером, используется этот парсер для разбора $argv вместо стандартного.
Возвращает
arrayмассив($params, $args)
Выбрасывает
ConsoleExceptionПри встрече некорректного параметра.
removeSubcommand()source public
removeSubcommand( string $name )
Удалить подкоманду из парсера параметров.
Параметры
- string
$name - Имя подкоманды для удаления.
Возвращает
ConsoleOptionParserПодробности свойств
$_argssource
protected array
Определения позиционных аргументов.
См. также
ConsoleOptionParser::addArgument()array()
$_descriptionsource
protected string
Текст описания - отображается перед параметрами при генерации справки
См. также
ConsoleOptionParser::description()null
$_epilogsource
protected string
Текст эпилога - отображается после параметров при генерации справки
См. также
ConsoleOptionParser::epilog()null
$_optionssource
protected array
Определения параметров.
См. также
ConsoleOptionParser::addOption()array()
$_shortOptionssource
protected string
Карта коротких -> длинных параметров, сгенерированная при использовании addOption()
array()
$_subcommandssource
protected array
Подкоманды для этой оболочки.
См. также
ConsoleOptionParser::addSubcommand()array()
© 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.
https://api.cakephp.org/2.9/class-ConsoleOptionParser.html