Spec-Zone.ru › CakePHP 3.7

Класс 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()
  • $_subcommandSort protected
    boolean
    Опция сортировки подкоманд
  • $_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
    Добавить сразу несколько подкоманд.
  • argumentNames() public
    Получить список имён аргументов.
  • arguments() public
    Получить аргументы, определённые в анализаторе.
  • buildFromArray() public static
    Создать анализатор из массива. Использует массив, подобный
  • command() public deprecated
    Получить или установить имя команды для shell/задачи.
  • create() public static
    Статический фабричный метод для создания новых OptionParsers, чтобы можно было вызывать методы.
  • description() public deprecated
    Получить или установить текст описания для shell/задачи.
  • enableSubcommandSort() public
    Включает сортировку подкоманд
  • epilog() public deprecated

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

  • findClosestItem() protected

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

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

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

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

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

  • getShortOptionError() protected

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

  • help() public
    Получить отформатированную справку для этого объекта анализатора.
  • isSubcommandSortEnabled() 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 deprecated
    Установить псевдоним, используемый в HelpFormatter
  • setRootName() public
    Установить имя корня, используемое в HelpFormatter
  • subcommands() public
    Получить массив определённых подкоманд
  • toArray() public
    Возвращает массивное представление этого анализатора.

Детали метода

__construct()source public

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

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

Параметры

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

Необходимо ли задавать параметры verbose и quiet. Установка в false предотвратит добавление параметров --verbose & --quiet.

_nextToken()source protected

_nextToken( )

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

Возвращает

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

_optionExists()source protected

_optionExists( string $name )

Проверка наличия у $name параметра (короткий/длинный) определения.

Параметры

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

Возвращает

boolean

_parseArg()source protected

_parseArg( string $argument , array $args )

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

Параметры

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

Возвращает

string[]
Args

Выбрасывает

Cake\Console\Exception\ConsoleException

_parseLongOption()source protected

_parseLongOption( string $option , array $params )

Разбор значения длинного параметра из $this->_tokens. Обрабатывает параметры с = в них.

Параметры

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

Возвращает

массив
Params с добавленным $option.

_parseOption()source protected

_parseOption( string $name , array $params )

Разбор параметра по его индексу имени.

Параметры

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

Возвращает

массив
Params с добавленным $option.

Выбрасывает

Cake\Console\Exception\ConsoleException

_parseShortOption()source protected

_parseShortOption( string $option , array $params )

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

Параметры

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

Возвращает

массив
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 - Параметр не использует значение, это просто переключатель булевой переменной. По умолчанию ложь. Если параметр определен как boolean, он всегда добавляется в обработанные параметры. Если его нет, он будет ложью, если он есть, он будет истиной.
  • 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 = [] )

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

Параметры

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

Параметры

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

Возвращает


$this

addSubcommands()source public

addSubcommands( array $commands )

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

Параметры

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

Возвращает


$this

argumentNames()source public

argumentNames( )

Получение списка имён аргументов.

Возвращает

string[]

arguments()source public

arguments( )

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

Возвращает

Cake\Console\ConsoleInputArgument[]

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
Спецификация для создания ConsoleOptionParser.
логическое значение $defaultOptions необязательно true
Требуется ли установка параметров verbose и quiet.

Возвращает

Cake\Console\ConsoleOptionParser

command()source public deprecated

command( string|null $text = null )

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

Устарело

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

Параметры

string|null $text optional null
Текст для задания или null, если требуется чтение

Возвращает

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

create()source public static

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

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

Параметры

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

Возвращает

Cake\Console\ConsoleOptionParser

description()source public deprecated

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.

enableSubcommandSort()source public

enableSubcommandSort( boolean $value = true )

Включает сортировку подкоманд

Параметры

boolean $value optional true
Указывает, следует ли сортировать подкоманды

Возвращает


$this

epilog()source public deprecated

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 , string[] $haystack )

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

Параметры

string $needle
Неизвестное имя элемента (например, имя подкоманды или опции), которое пытается использовать пользователь.
string[] $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
Сгенерированная справка.

isSubcommandSortEnabled()source public

isSubcommandSortEnabled( )

Проверка включения сортировки подкоманд.

Возвращает

boolean

merge()source public

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

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

Параметры

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

Возвращает


$this

options()source public

options( )

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

Возвращает

Cake\Console\ConsoleInputOption[]

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

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 deprecated

setHelpAlias( string $alias )

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

Устаревшее

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

Параметры

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

setRootName()source public

setRootName( string $name )

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

Параметры

string $name
Имя корневой команды

Возвращает


$this

subcommands()source public

subcommands( )

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

Возвращает

Cake\Console\ConsoleInputSubcommand[]

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()

[]

$_subcommandSortsource

protected boolean

Опция сортировки подкоманд

true

$_subcommandssource

protected Cake\Console\ConsoleInputSubcommand[]

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

См. также

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

$_tokenssource

protected array

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

[]

$rootNamesource

protected string

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

См. также

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

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

Spec-Zone.ru

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