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