Класс 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
Подробное описание метода
__constructsource public
__construct( string $command null , boolean $defaultOptions true )
Создайте OptionParser, чтобы определить его поведение
Параметры
- строка
$commandнеобязательно null - Имя команды, для которой предназначен этот парсер. Имя команды используется для генерации справки.
- логическое значение
$defaultOptionsнеобязательно true - Указывает, хотите ли вы задать опции verbose и quiet. Установка этого значения в false предотвратит добавление опций
--verboseи--quiet.
_nextTokensource protected
_nextToken( )
Найдите следующий токен в наборе argv.
Возвращает
stringследующий токен или ''
_optionExistssource protected
_optionExists( string $name )
Проверьте, определена ли для $name опция (короткая/длинная).
Параметры
- строка
$name - Имя опции.
Возвращает
booleanbool
_parseArgsource protected
_parseArg( string $argument , array $args )
Обработайте аргумент и убедитесь, что аргумент не превышает количество аргументов и что аргумент является допустимым выбором.
Параметры
- строка
$argument - Аргумент для добавления
- массив
$args - Массив обработанных аргументов для добавления.
Возвращает
arrayArgs
Исключения
ConsoleExceptionConsoleException
_parseLongOptionsource protected
_parseLongOption( string $option , array $params )
Обработать значение длинной опции из $this->_tokens. Обработает опции с = в них.
Параметры
- строка
$option - Опция для обработки.
- массив
$params - Параметры для добавления обработанного значения
Возвращает
arrayПараметры с добавленной опцией.
_parseOptionsource protected
_parseOption( string $name , array $params )
Обработайте опцию по ее индексу имени.
Параметры
- строка
$name - Имя для обработки.
- массив
$params - Параметры для добавления обработанного значения
Возвращает
arrayПараметры с добавленной опцией.
Исключения
ConsoleExceptionConsoleException
_parseShortOptionsource protected
_parseShortOption( string $option , array $params )
Обработать значение короткой опции из $this->_tokens. Если $option представляет собой комбинацию нескольких сокращений, таких как -otf, они будут перемещены на стек токенов и обработаны индивидуально.
Параметры
- строка
$option - Опция для обработки.
- массив
$params - Параметры для добавления обработанного значения
Возвращает
arrayПараметры с добавленной опцией.
Исключения
ConsoleExceptionПри обнаружении неизвестных коротких опций.
addArgumentsource public
addArgument( ConsoleInputArgument|string $name , array $params array() )
Добавить позиционный аргумент к парсеру опций.
Параметры
-
helpТекст справки для отображения по этому аргументу. -
requiredТребуется ли этот параметр. -
indexИндекс для аргумента; если не определен, аргумент будет помещен в конец аргументов. Если вы определены одинаковый индекс дважды, первая опция будет перезаписана. -
choicesСписок допустимых значений для этого аргумента. Если оставлено пустым, все значения допустимы. При обработке parse() будет возбуждено исключение при обнаружении недопустимого значения.
Параметры
-
ConsoleInputArgument|строка$name - Имя аргумента. Также принимает экземпляр ConsoleInputArgument
- массив
$paramsнеобязательно array() - Параметры для аргумента, см. выше.
Возвращает
selfself
addArgumentssource public
addArguments( array $args )
Добавить несколько аргументов сразу. Принимает массив определений аргументов. Ключи используются в качестве имен аргументов, а значения — в качестве параметров аргумента.
Параметры
- массив
$args - Массив аргументов для добавления.
Возвращает
selfself
См.
ConsoleOptionParser::addArgument()addOptionsource public
addOption( ConsoleInputOption|string $name , array $options array() )
Добавить опцию к парсеру опций. Опции позволяют определить необязательные или обязательные параметры для вашего консольного приложения. Опции определяются используемыми ими параметрами.
Опции
-
short— Однобуквенный вариант этой опции, оставьте без значения для отсутствия. -
help— Текст справки для этой опции. Используется при генерации справки для опции. -
default— Значение по умолчанию для этой опции. Значения по умолчанию добавляются в обработанные параметры, когда присоединенная опция не указана или не имеет значения. Одновременное использование значения по умолчанию и логического значения не работает. Добавляются в обработанные параметры, когда опция не определена. По умолчанию null. -
boolean— Опция не использует значение, это просто логический переключатель. По умолчанию false. Если опция определена как логическая, она всегда будет добавлена в обработанные параметры. Если отсутствует, будет false, если присутствует, будет true. -
choices— Список допустимых значений для этой опции. Если оставлено пустым, все значения допустимы. При обработке parse() будет возбуждено исключение при обнаружении недопустимого значения.
Параметры
-
ConsoleInputOption|строка$name - Длинное имя, которое вы хотите, чтобы значение было обработано как при обработке опций. Также принимает экземпляр ConsoleInputOption
- массив
$optionsнеобязательно array() - Массив параметров, определяющих поведение опции
Возвращает
selfself
addOptionssource public
addOptions( array $options )
Добавить несколько опций сразу. Принимает массив определений опций. Ключи используются в качестве имён опций, а значения — в качестве параметров опции.
Параметры
- массив
$options - Массив опций для добавления.
Возвращает
selfself
См. также
ConsoleOptionParser::addOption()addSubcommandsource public
addSubcommand( ConsoleInputSubcommand|string $name , array $options array() )
Добавить подкоманду в список подкоманд. Подкоманды обычно являются методами вашего Shell, но также могут использоваться для документирования задач.
Опции
-
help- Текст справки для подкоманды. -
parser- ConsoleOptionParser для подкоманды. Это позволяет создавать специфичные для метода парсеры опций. При генерации справки для подкоманды, если парсер присутствует, он будет использован.
Параметры
-
ConsoleInputSubcommand|строка$name - Имя подкоманды. Также принимает экземпляр ConsoleInputSubcommand
- массив
$optionsнеобязательно массив() - Массив параметров, см. выше.
Возвращает
selfself
addSubcommandssource public
addSubcommands( array $commands )
Добавить сразу несколько подкоманд.
Параметры
- массив
$commands - Массив подкоманд.
Возвращает
selfself
argumentssource public
arguments( )
Получает аргументы, определённые в парсере.
Возвращает
arrayМассив описаний аргументов
buildFromArraysource 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 - Спецификация для создания ConsoleOptionParser.
Возвращает
ConsoleOptionParserConsoleOptionParser
commandsource public
command( string $text null )
Получение или установка имени команды для оболочки/задачи.
Параметры
- строка
$textнеобязательно null - Текст для установки, или null, если нужно считать
Возвращает
string|selfПри чтении — значение команды. При установке — $this.
createsource public static
create( string $command , boolean $defaultOptions true )
Статический фабричный метод для создания новых OptionParsers, чтобы вы могли использовать цепочку методов.
Параметры
- строка
$command - Имя команды, для которой предназначен этот парсер. Имя команды используется для генерации справки.
- логическое
$defaultOptionsнеобязательно true - Нужно ли устанавливать опции verbose и quiet.
Возвращает
ConsoleOptionParserConsoleOptionParser
descriptionsource public
description( string|array $text null )
Получение или установка текстового описания для оболочки/задачи.
Параметры
- строка/массив
$textнеобязательно null - Текст для установки, или null при чтении. Если массив, текст будет объединён с помощью "\n"
Возвращает
string|selfЕсли чтение, то значение описания. Если установка, то $this.
epilogsource public
epilog( string|array $text null )
Получение или установка эпилога для парсера. Эпилог добавляется в конец списка опций и аргументов при генерации справки.
Параметры
- строка/массив
$textнеобязательно null - Текст при установке или null при чтении. Если массив, текст будет объединён с помощью "\n"
Возвращает
string|selfПри чтении — значение эпилога. При установке — $this.
helpsource public
help( string $subcommand null , string $format 'text' , integer $width 72 )
Получает отформатированную справку для этого объекта парсера. Генерирует текст справки на основе описания, опций, аргументов, подкоманд и эпилога в парсере.
Параметры
- строка
$subcommandнеобязательно null - Если присутствует и является валидной подкомандой, у которой есть связанный парсер. Будет показана справка по этой подкоманде.
- строка
$formatнеобязательно 'text' - Определение формата вывода, может быть text или xml
- целое число
$widthнеобязательно 72 - Ширина для форматирования пользовательского контента. По умолчанию 72
Возвращает
stringСгенерированная справка.
parsesource public
parse( array $argv , string $command null )
Парсит массив argv в набор параметров и аргументов. Если $command не равен null и $command равен подкоманде, у которой есть парсер, будет использован этот парсер для разбора $argv
Параметры
- массив
$argv - Массив аргументов (argv) для разбора.
- строка
$commandнеобязательно null - Подкоманда для использования. Если этот параметр является подкомандой, у которой есть парсер, этот парсер будет использован для разбора $argv вместо него.
Возвращает
arrayмассив($params, $args)
Выбрасывает
ConsoleExceptionПри обнаружении некорректного параметра.
removeSubcommandsource public
removeSubcommand( string $name )
Удаляет подкоманду из парсера опций.
Параметры
- строка
$name - Имя подкоманды для удаления.
Возвращает
selfself
subcommandssource public
subcommands( )
Получает массив определённых подкоманд
Возвращает
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.7/class-ConsoleOptionParser.html