Класс 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 переключатель.
Резюме свойств
- Определения позиционных аргументов.
$_argsprotected -
$_commandprotectedИмя команды.string -
$_descriptionprotectedТекст описания - отображается перед опциями при генерации справкиstring -
$_epilogprotectedТекст эпилога - отображается после опций при генерации справкиstring - Определения опций.
$_optionsprotected -
$_shortOptionsprotectedКарта коротких -> длинных опций, сгенерированная при использовании addOption()array -
$_subcommandSortprotectedОпция сортировки подкомандboolean - Подкоманды для этой оболочки.
$_subcommandsprotected -
$_tokensprotectedМассив аргументов (argv).array -
$rootNameprotectedКорневой псевдоним, используемый в выводе справки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Получить аргументы, определённые в парсере.
- Создать парсер из массива. Использует массив, похожий на
- Получить или установить имя команды для shell/задачи.
- Статический фабричный метод для создания новых OptionParsers, чтобы вы могли цеплять методы к ним.
- Получить или установить текст описания для shell/задачи.
- enableSubcommandSort() publicВключает сортировку подкоманд
-
Получить или установить эпилог для парсера. Эпилог добавляется в конец списка параметров и аргументов при генерации справки.
- 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
Установить эпилог для парсера. Эпилог добавляется в конец списка параметров и аргументов при генерации справки.
- Установить псевдоним, используемый в HelpFormatter
- setRootName() publicУстановить корневое имя, используемое в HelpFormatter
- subcommands() publicПолучить массив определённых подкоманд
- toArray() publicВозвращает массивное представление этого парсера.
Подробное описание метода
__construct()source public
__construct( string|null $command = null , boolean $defaultOptions = true )
Создать OptionParser, чтобы вы могли определить его поведение
Параметры
- string|null
$commandoptional null - Имя команды, для которой предназначен этот парсер. Имя команды используется для генерации справки.
- boolean
$defaultOptionsoptional true Указывает, хотите ли вы установить параметры verbose и quiet. Установка этого значения в false предотвратит добавление параметров
--verboseи--quiet.
_nextToken()source protected
_nextToken( )
Найти следующий токен в наборе argv.
Возвращает
stringследующий токен или ''
_optionExists()source protected
_optionExists( string $name )
Проверка наличия опции (короткой/длинной) для $name.
Параметры
- строка
$name - Имя опции.
Возвращает
boolean_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 - Параметры для добавления обработанного значения
Возвращает
массив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Индекс для arg, если не определен, аргумент будет добавлен в конец аргументов. Если вы определены один и тот же индекс дважды, первая опция будет перезаписана. -
choicesСписок допустимых вариантов для данного аргумента. Если оставлен пустым, все значения допустимы. Исключение будет выброшено, когда parse() столкнется с недопустимым значением.
Параметры
-
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Список допустимых вариантов для этой опции. Если оставлен пустым, все значения допустимы.. Исключение будет выброшено, когда parse() столкнется с недопустимым значением.
Параметры
-
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 - Спецификация для построения ConsoleOptionParser.
- boolean
$defaultOptionsнеобязательно true - Указывает, хотите ли вы установить опции verbose и quiet.
Возвращает
Cake\Console\ConsoleOptionParsercommand()source public deprecated
command( string|null $text = null )
Получает или устанавливает имя команды для оболочки/задачи.
Устаревшее
3.4.0 Используйте setCommand()/getCommand() вместо этого.Параметры
- string|null
$textнеобязательно null - Текст для установки или null, если нужно считать.
Возвращает
string|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\ConsoleOptionParserdescription()source public deprecated
description( string|array|null $text = null )
Получение или установка текстового описания для оболочки/задачи.
Устаревшее
3.4.0 Используйте setDescription()/getDescription() вместо этого.Параметры
- string|array|null
$textнеобязательно null Текст для установки или null, если нужно считать. Если массив, текст будет объединён с помощью "\n".
Возвращает
string|Cake\Console\ConsoleOptionParser$this Если чтение, значение описания. Если установка, возвращается $this.
enableSubcommandSort()source public
enableSubcommandSort( boolean $value = true )
Включает сортировку подкоманд
Параметры
- boolean
$valueнеобязательно true - Сортировать подкоманды или нет
Возвращает
$this
epilog()source public deprecated
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Сгенерированная справка.
isSubcommandSortEnabled()source public
isSubcommandSortEnabled( )
Проверяет, включена ли сортировка подкоманд.
Возвращает
booleanmerge()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()[]
$_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()[]
$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.6/class-Cake.Console.ConsoleOptionParser.html