Spec-Zone.ru › CakePHP 3.4

Класс 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

Резюме свойств

  • $_args protected
    Cake\Console\ConsoleInputArgument[]
    Определения позиционных аргументов.
  • $_command protected
    string
    Имя команды.
  • $_description protected
    string
    Текст описания — отображается перед опциями при генерации справки
  • $_epilog protected
    string
    Текст эпилога — отображается после опций при генерации справки
  • $_options protected
    Cake\Console\ConsoleInputOption[]
    Определения опций.
  • $_shortOptions protected
    array
    Карта коротких -> длинных опций, сгенерированная при использовании addOption()
  • $_subcommands protected
    Cake\Console\ConsoleInputSubcommand[]
    Подкоманды для этой оболочки.
  • $_tokens protected
    array
    Массив аргументов (argv).
  • $rootName protected
    string
    Корневой псевдоним, используемый в выводе справки

Резюме методов

  • __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

    Добавить подкоманду в список подкоманд. Подкоманды обычно являются методами в вашем Shell, но также могут использоваться для документирования задач.

  • addSubcommands() public
    Добавить сразу несколько подкоманд.
  • arguments() public
    Получить аргументы, определенные в парсере.
  • buildFromArray() public static
    Создать парсер из массива. Использует массив, подобный
  • command() public
    Получить или установить имя команды для shell/задачи.
  • create() public static
    Статический фабричный метод для создания новых OptionParsers, чтобы вы могли вызывать методы по цепочке.
  • description() public
    Получить или установить текст описания для shell/задачи.
  • epilog() public

    Получить или установить эпилог для парсера. Эпилог добавляется в конец списка опций и аргументов при генерации справки.

  • findClosestItem() protected

    Попытаться угадать имя элемента, которое пользователь первоначально хотел использовать, используя некоторые шаблоны регулярных выражений и алгоритм Левенштейна.

  • getCommand() public
    Получить имя команды для shell/задачи.
  • getCommandError() protected

    Получить сообщение, выводимое в консоли, указывающее, что команда не найдена, и попытаться угадать, что хотел сказать пользователь. Также вывести список доступных подкоманд.

  • getDescription() public
    Получить текст описания для shell/задачи.
  • getEpilog() public
    Получить эпилог.
  • getOptionError() protected

    Получить сообщение, выводимое в консоли, указывающее, что опция не найдена, и попытаться угадать, что хотел сказать пользователь. Также вывести список доступных опций.

  • getShortOptionError() protected

    Получить сообщение, выводимое в консоли, указывающее, что короткая опция не найдена. Также вывести список доступных коротких опций и к какой опции они относятся.

  • help() public
    Получить отформатированную справку для этого объекта парсера.
  • merge() public
    Получить или установить имя команды для shell/задачи.
  • options() public
    Получить определенные опции в парсере.
  • parse() public

    Обработать массив argv в набор параметров и аргументов. Если $command не равен null и $command равен подкоманде, имеющей парсер, будет использован этот парсер для обработки $argv

  • removeOption() public
    Удалить опцию из парсера опций.
  • removeSubcommand() public
    Удалить подкоманду из парсера опций.
  • setCommand() public
    Установить имя команды для shell/задачи.
  • setDescription() public
    Установить текст описания для shell/задачи.
  • setEpilog() public

    Установить эпилог для парсера. Эпилог добавляется в конец списка опций и аргументов при генерации справки.

  • setHelpAlias() public
    Установить псевдоним, используемый в HelpFormatter
  • setRootName() public
    Установить корневое имя, используемое в HelpFormatter
  • subcommands() public
    Получить массив определенных подкоманд
  • toArray() public
    Возвращает массивное представление этого парсера.

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

__construct()source public

__construct( string|null $command null , boolean $defaultOptions true )

Создать OptionParser, чтобы определить его поведение

Параметры

строка|null $command optional null
Имя команды, для которой предназначен этот парсер. Имя команды используется для генерации справки.
логическое $defaultOptions optional true

Указывает, нужно ли устанавливать опции verbose и quiet. Установка значения false предотвратит добавление опций --verbose и --quiet.

_nextToken()source protected

_nextToken( )

Найти следующий токен в наборе argv.

Возвращаемое значение

строка
следующий токен или ''

_optionExists()source protected

_optionExists( string $name )

Проверить, определена ли для $name опция (короткая/длинная).

Параметры

строка $name
Имя опции.

Возвращаемое значение

булево
END_OF_DOCUMENT_MARKER

_parseArg()source protected

_parseArg( string $argument , array $args )

Обработать аргумент и убедиться, что аргумент не превышает количество аргументов и что аргумент является допустимым выбором.

Параметры

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

Возвращает

массив
Args

Выбрасывает

Cake\Console\Exception\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.

Выбрасывает

Cake\Console\Exception\ConsoleException

_parseShortOption()source protected

_parseShortOption( string $option , array $params )

Обработать значение для короткого параметра из $this->_tokens. Если $option представляет собой комбинацию нескольких сокращений, таких как -otf, они будут перемещены в стек токенов и обработаны индивидуально.

Параметры

строка $option
Параметр для обработки.
массив $params
Параметры для добавления обработанного значения.

Возвращает

массив
Параметры с добавленным $option.

Выбрасывает

Cake\Console\Exception\ConsoleException
При обнаружении неизвестных коротких параметров.

addArgument()source public

addArgument( Cake\Console\ConsoleInputArgument|string $name , array $params [] )

Добавить позиционный аргумент к обработчику параметров.

Параметры

  • help Текст справки, отображаемый для этого аргумента.
  • required Требуется ли этот параметр.
  • index Индекс для аргумента. Если не определён, аргумент будет добавлен в конец аргументов. Если один и тот же индекс определён дважды, первый параметр будет перезаписан.
  • choices Список допустимых значений для этого аргумента. Если оставлено пустым, все значения допустимы. При обработке неверного значения будет вызвано исключение.

Параметры

Cake\Console\ConsoleInputArgument|строка $name

Имя аргумента. Также примет экземпляр ConsoleInputArgument.

массив $params необязательно []
Параметры для аргумента, см. выше.

Возвращает


$this

addArguments()source public

addArguments( array $args )

Добавить сразу несколько аргументов. Принимает массив определений аргументов. Ключи используются в качестве имён аргументов, а значения — в качестве параметров аргумента.

Параметры

массив $args
Массив добавляемых аргументов.

Возвращает


$this

См. также

\Cake\Console\ConsoleOptionParser::addArgument()

addOption()source public

addOption( Cake\Console\ConsoleInputOption|string $name , array $options [] )

Добавить параметр к обработчику параметров. Параметры позволяют определять необязательные или обязательные параметры для вашего консольного приложения. Параметры определяются используемыми ими параметрами.

Параметры

  • short - Однобуквенный вариант этого параметра, оставить неопределённым, если нет.
  • help - Текст справки для этого параметра. Используется при генерации справки для параметра.
  • default - Значение по умолчанию для этого параметра. Значения по умолчанию добавляются в обработанные параметры, когда присоединённый параметр не указан или не имеет значения. Использование значения по умолчанию и булевых значений вместе не сработает. добавляются в обработанные параметры, когда параметр не определён. По умолчанию null.
  • boolean - Параметр не использует значение, это просто булевой переключатель. По умолчанию false. Если параметр определён как булев, он всегда добавляется в обработанные параметры. Если его нет, он будет false, если он есть — true.
  • multiple - Параметр может быть указан несколько раз. Обработанный параметр будет массивом значений, если этот параметр включён.
  • choices Список допустимых значений для этого параметра. Если оставлено пустым, все значения допустимы. При обработке неверного значения будет вызвано исключение.

Параметры

Cake\Console\ConsoleInputOption|строка $name

Длинное имя, которое вы хотите, чтобы значение обрабатывалось при обработке параметров. Также примет экземпляр ConsoleInputOption

массив $options необязательно []
Массив параметров, определяющих поведение параметра

Возвращает


$this

addOptions()source public

addOptions( array $options )

Добавить сразу несколько параметров. Принимает массив определений параметров. Ключи используются в качестве имён параметров, а значения — в качестве параметров параметра.

Параметры

массив $options
Массив добавляемых параметров.

Возвращает


$this

См. также

\Cake\Console\ConsoleOptionParser::addOption()

addSubcommand()source public

addSubcommand( Cake\Console\ConsoleInputSubcommand|string $name , array $options [] )

Добавить подкоманду в список подкоманд. Подкоманды обычно являются методами вашего Shell, но также могут использоваться для документирования задач.

Параметры

  • help - Текст справки для подкоманды.
  • parser - ConsoleOptionParser для подкоманды. Это позволяет создавать обработчики параметров, специфичные для методов. При генерации справки для подкоманды, если присутствует обработчик, он будет использован.

Параметры

Cake\Console\ConsoleInputSubcommand|строка $name
Имя подкоманды. Также примет экземпляр ConsoleInputSubcommand
массив $options необязательно []
Массив параметров, см. выше.

Возвращает


$this

addSubcommands()source public

addSubcommands( array $commands )

Добавить сразу несколько подкоманд.

Параметры

массив $commands
Массив подкоманд.

Возвращает


$this

arguments()source public

arguments( )

Получить аргументы, определённые в обработчике.

Возвращает

массив
Массив описаний аргументов

buildFromArray()source 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.
     ]
];

Параметры

массив $spec
Спецификация для создания OptionParser.
булево $defaultOptions необязательно true
Хотите ли вы установить параметры verbose и quiet.

Возвращает

Cake\Console\ConsoleOptionParser

command()source public

command( string|null $text null )

Получить или установить имя команды для shell/задачи.

Устарело

3.4.0 Используйте setCommand()/getCommand() вместо этого.

Параметры

строка|null $text необязательно null
Текст для установки или null, если вы хотите прочитать

Возвращает

строка|Cake\Console\ConsoleOptionParser
$this Если чтение, значение команды. Если установка $this будет возвращено.

create()source public static

create( string|null $command , boolean $defaultOptions true )

Статический фабричный метод для создания новых OptionParsers, чтобы вы могли цепочкой вызывать методы.

Параметры

string|null $command
Имя команды, для которой предназначен этот парсер. Имя команды используется для генерации справки.
boolean $defaultOptions optional true
Указывает, нужно ли устанавливать опции verbose и quiet.

Возвращаемое значение

Cake\Console\ConsoleOptionParser

description()source public

description( string|array|null $text null )

Получение или установка описания для оболочки/задачи.

Устарело

3.4.0 Используйте setDescription()/getDescription() вместо этого.

Параметры

string|array|null $text optional null

Текст для установки или null для чтения. Если массив, текст будет склеен с помощью "\n".

Возвращаемое значение

string|Cake\Console\ConsoleOptionParser
$this Если читается, возвращается значение описания. Если устанавливается, возвращается $this.

epilog()source public

epilog( string|array|null $text null )

Получает или устанавливает эпилог для парсера. Эпилог добавляется в конец списка опций и аргументов при генерации справки.

Устарело

3.4.0 Используйте setEpilog()/getEpilog() вместо этого.

Параметры

string|array|null $text optional null

Текст при установке или null при чтении. Если массив, текст будет склеен с помощью "\n".

Возвращаемое значение

string|Cake\Console\ConsoleOptionParser
$this Если читается, возвращается значение эпилога. Если устанавливается, возвращается $this.

findClosestItem()source protected

findClosestItem( string $needle , array $haystack )

Попытка угадать имя элемента, который пользователь изначально хотел использовать, используя некоторые шаблоны регулярных выражений и алгоритм Левенштейна.

Параметры

string $needle
Неизвестный элемент (например, имя подкоманды или опция), который пытаются использовать.
array $haystack
Список доступных элементов для типа, к которому принадлежит $needle.

Возвращаемое значение

string|null
Ближайшее имя к элементу, отправленному пользователем.

getCommand()source public

getCommand( )

Получает имя команды для оболочки/задачи.

Возвращаемое значение

string
Значение команды.

getCommandError()source protected

getCommandError( string $command )

Получение сообщения, выводимого в консоли, указывающего, что команда не найдена, и попытка угадать, что хотел сказать пользователь. Также выводится список доступных подкоманд.

Параметры

string $command
Неизвестное имя команды, которую пытаются обработать.

Возвращаемое значение

string
Сообщение, которое должно быть отображено в консоли.

getDescription()source public

getDescription( )

Получает текст описания для оболочки/задачи.

Возвращаемое значение

string
Значение описания

getEpilog()source public

getEpilog( )

Получает эпилог.

Возвращаемое значение

string
Значение эпилога.

getOptionError()source protected

getOptionError( string $option )

Получение сообщения, выводимого в консоли, указывающего, что опция не найдена, и попытка угадать, что хотел сказать пользователь. Также выводится список доступных опций.

Параметры

string $option
Неизвестное имя опции, которое пытаются использовать.

Возвращаемое значение

string
Сообщение, которое должно быть отображено в консоли.

getShortOptionError()source protected

getShortOptionError( string $option )

Получение сообщения, выводимого в консоли, указывающего, что короткая опция не найдена. Также выводится список доступных коротких опций и соответствующие им опции.

Параметры

string $option
Неизвестное имя короткой опции, которое пытаются использовать.

Возвращаемое значение

string
Сообщение, которое должно быть отображено в консоли.

help()source public

help( string|null $subcommand null , string $format 'text' , integer $width 72 )

Получение отформатированной справки для этого объекта парсера.

Генерирует текст справки на основе описания, опций, аргументов, подкоманд и эпилога в парсере.

Параметры

string|null $subcommand optional null

Если присутствует и является действительной подкомандой, имеющей связанный парсер. Вместо этого будет показана справка по подкоманде.

string $format optional 'text'
Определение формата вывода, может быть text или xml
integer $width optional 72
Ширина для форматирования пользовательского содержимого. По умолчанию 72

Возвращаемое значение

string
Сгенерированная справка.

merge()source public

merge( array|Cake\Console\ConsoleOptionParser $spec )

Получение или установка имени команды для оболочки/задачи.

Параметры

array|Cake\Console\ConsoleOptionParser $spec
ConsoleOptionParser или спецификация для слияния.

Возвращаемое значение


$this

options()source public

options( )

Получение определённых опций в парсере.

Возвращаемое значение

array

parse()source public

parse( array $argv )

Разбор массива argv в набор параметров и аргументов. Если $command не null и $command равен подкоманде, имеющей парсер, будет использоваться этот парсер для разбора $argv

Параметры

array $argv
Массив аргументов (argv) для разбора.

Возвращаемое значение

array
[$params, $args]

Выбрасывает

Cake\Console\Exception\ConsoleException
При встрече недействительного параметра.

removeOption()source public

removeOption( string $name )

Удаление опции из парсера опций.

Параметры

string $name
Имя опции для удаления.

Возвращаемое значение


$this

removeSubcommand()source public

removeSubcommand( string $name )

Удаление подкоманды из парсера опций.

Параметры

string $name
Имя подкоманды для удаления.

Возвращаемое значение


$this

setCommand()source public

setCommand( string $text )

Установка имени команды для оболочки/задачи.

Параметры

string $text
Текст для установки.

Возвращаемое значение


$this
END_OF_DOCUMENT_MARKER

setDescription()source public

setDescription( string|array $text )

Устанавливает текст описания для командной оболочки/задачи.

Параметры

string|array $text

Текст для установки. Если массив, текст будет объединен с помощью "\n".

Возвращает


$this

setEpilog()source public

setEpilog( string|array $text )

Устанавливает эпилог для анализатора. Эпилог добавляется в конец списка опций и аргументов при генерации справки.

Параметры

string|array $text

Текст для установки. Если массив, текст будет объединен с помощью "\n".

Возвращает


$this

setHelpAlias()source public

setHelpAlias( string $alias )

Устанавливает псевдоним, используемый в HelpFormatter

Устаревшее

3.5.0 Используйте setRootName() вместо этого.

Параметры

string $alias
Псевдоним

setRootName()source public

setRootName( string $name )

Устанавливает корневое имя, используемое в HelpFormatter

Параметры

string $name
Название корневой команды

Возвращает


$this

subcommands()source public

subcommands( )

Получить массив определённых подкоманд

Возвращает

массив

toArray()source public

toArray( )

Возвращает представление этого анализатора в виде массива.

Возвращает

массив

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

$_argssource

protected Cake\Console\ConsoleInputArgument[]

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

См. также

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

$_commandsource

protected string

Имя команды.

''

$_descriptionsource

protected string

Текст описания — отображается перед опциями при генерации справки.

См. также

\Cake\Console\ConsoleOptionParser::description()

$_epilogsource

protected string

Текст эпилога — отображается после опций при генерации справки.

См. также

\Cake\Console\ConsoleOptionParser::epilog()

$_optionssource

protected Cake\Console\ConsoleInputOption[]

Определения опций.

См. также

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

$_shortOptionssource

protected array

Отображение коротких -> длинных опций, сгенерированных при использовании addOption()

[]

$_subcommandssource

protected Cake\Console\ConsoleInputSubcommand[]

Подкоманды для этой оболочки.

См. также

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

$_tokenssource

protected array

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

[]

$rootNamesource

protected string

Корневой псевдоним, используемый в выводе справки

См. также

\Cake\Console\HelpFormatter::setAlias()
'cake'

© 2005–2017 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/3.4/class-Cake.Console.ConsoleOptionParser.html

Spec-Zone.ru

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