Класс 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 переключатель.
Авторские права: Авторские права (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Создание 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
Получение отформатированной справки для этого объекта парсера. Генерирует текст справки на основе описания, опций, аргументов, подкоманд и эпилога в парсере.
- options() publicПолучение определенных опций в парсере.
- parse() public
Разбор массива argv в набор параметров и аргументов. Если $command не равен null и $command равен подкоманде, у которой есть парсер, будет использован этот парсер для разбора $argv
- removeSubcommand() publicУдаление подкоманды из парсера опций.
- subcommands() publicПолучение массива определенных подкоманд
Подробное описание методов
__construct()source public
__construct( string $command null , boolean $defaultOptions true )
Создание OptionParser для определения его поведения
Параметры
- строка
$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Список допустимых значений для этого аргумента. Если оставлен пустым, все значения допустимы. При встрече недопустимого значения будет вызвано исключение.
Параметры
-
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- Параметр не использует значение, это просто переключатель. По умолчанию ложь. Если параметр определен как логический, он всегда будет добавлен в обработанные параметры. Если отсутствует, он будет ложным; если присутствует, он будет истинным. -
choicesСписок допустимых значений для этого параметра. Если оставлен пустым, все значения допустимы. При встрече недопустимого значения будет вызвано исключение.
Параметры
-
ConsoleInputOption|строка$name Длинное имя, которое вы хотите, чтобы значение было обработано при обработке параметров. Также принимает экземпляр ConsoleInputOption
- массив
$optionsнеобязательно массив() - Массив параметров, определяющих поведение параметра
Возвращает
ConsoleOptionParseraddOptions()source public
addOptions( array $options )
Добавить сразу несколько параметров. Принимает массив определений параметров. Ключи используются в качестве имён параметров, а значения — в качестве параметров параметра.
Параметры
- массив
$options - Массив параметров для добавления.
Возвращает
ConsoleOptionParserСм. также
ConsoleOptionParser::addOption()addSubcommand()source public
addSubcommand( ConsoleInputSubcommand|string $name , array $options array() )
Добавить подкоманду в список подкоманд. Подкоманды обычно представляют собой методы в вашем Shell, но также могут использоваться для документирования задач.
Параметры
-
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 и равен подкоманде, имеющей анализатор, будет использоваться этот анализатор для разбора $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.
http://api.cakephp.org/2.8/class-ConsoleOptionParser.html