Spec-Zone.ru › CakePHP 3.5

Класс 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 param в 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
    Получить или установить имя команды для оболочки/задачи.
  • create() public static
    Статический метод фабрики для создания новых OptionParsers, чтобы вы могли вызывать методы по цепочке.
  • description() public
    Получить или установить текстовое описание для оболочки/задачи.
  • epilog() public

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

  • findClosestItem() protected

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

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

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

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

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

  • getShortOptionError() protected

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

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

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

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

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

  • setHelpAlias() public
    Установить псевдоним, используемый в 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.

Возвращает

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

_optionExists()source protected

_optionExists( string $name )

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

Параметры

string $name
Имя параметра.

Возвращает

boolean
END_OF_DOCUMENT_MARKER

_parseArg()source protected

_parseArg( string $argument , array $args )

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

Параметры

строка $argument
Аргумент для добавления
массив $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( )

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

Возвращает

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
Спецификация для создания 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 опционально true
Указывает, нужно ли устанавливать опции verbose и quiet.

Возвращает

Cake\Console\ConsoleOptionParser

description()source public

description( string|array|null $text null )

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

Устарело

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

Параметры

string|array|null $text опционально 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 опционально 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 опционально null

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

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

Возвращает

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

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

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

Возвращает

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

[]

$_subcommandssource

protected Cake\Console\ConsoleInputSubcommand[]

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

См. также

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

$_tokenssource

protected array

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

[]

$rootNamesource

protected string

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

См. также

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

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

Spec-Zone.ru

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