Spec-Zone.ru › CakePHP 3.1

Класс 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 переключатель.

Пространство имен: Cake\Console
Расположение: Console/ConsoleOptionParser.php

Подробное описание методов

__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
Имя опции.

Возвращает

boolean
bool

_parseArgsource protected

_parseArg( string $argument , array $args )

Парсит аргумент и проверяет, не превышает ли число аргументов допустимого значения и является ли аргумент допустимым вариантом.

Параметры

string $argument
Аргумент для добавления
array $args
Массив обработанных аргументов, к которому нужно добавить.

Возвращает

array
Args

Исключения

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
массив

Краткое описание свойств

$_argssource

protected array

Определения позиционных аргументов.

См.

Cake\Console\ConsoleOptionParser::addArgument()
[]

$_commandsource

protected string

Имя команды.

''

$_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

Подкоманды для этого Shell.

См.

Cake\Console\ConsoleOptionParser::addSubcommand()
[]

$_tokenssource

protected array

Массив аргументов (argv).

[]

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API