Класс 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.
Возвращает
строкаследующий токен или ''
_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
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\ConsoleOptionParsercommand()source public deprecated
command( string|null $text = null )
Получает или задаёт имя команды для оболочки/задачи.
Устарело
3.4.0 Используйте setCommand()/getCommand() вместо этого.Параметры
- string|null
$textoptional null - Текст для задания или null, если требуется чтение
Возвращает
string|Cake\Console\ConsoleOptionParser$this Если происходит чтение, то значение команды. Если происходит задание, то возвращается $this.
create()source public static
create( string|null $command , boolean $defaultOptions = true )
Статический фабричный метод для создания новых OptionParser, чтобы вы могли вызывать методы.
Параметры
- string|null
$command - Имя команды, для которой предназначен данный парсер. Имя команды используется для генерации справки.
- boolean
$defaultOptionsoptional true - Указывает, хотите ли вы задать опции verbose и quiet.
Возвращает
Cake\Console\ConsoleOptionParserdescription()source public deprecated
description( string|array|null $text = null )
Получает или задаёт текст описания для оболочки/задачи.
Устарело
3.4.0 Используйте setDescription()/getDescription() вместо этого.Параметры
- string|array|null
$textoptional null Текст для задания или null, если требуется чтение. Если массив, текст будет объединён с помощью "\n".
Возвращает
string|Cake\Console\ConsoleOptionParser$this Если происходит чтение, то значение описания. Если происходит задание, то возвращается $this.
enableSubcommandSort()source public
enableSubcommandSort( boolean $value = true )
Включает сортировку подкоманд
Параметры
- boolean
$valueoptional true - Указывает, следует ли сортировать подкоманды
Возвращает
$this
epilog()source public deprecated
epilog( string|array|null $text = null )
Получает или задаёт эпилог для парсера. Эпилог добавляется в конец списка опций и аргументов при генерации справки.
Устарело
3.4.0 Используйте setEpilog()/getEpilog() вместо этого.Параметры
- string|array|null
$textoptional 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Значение описания
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
$subcommandoptional null Если присутствует и является допустимой подкомандой, имеющей связанный парсер. Вместо этого будет показана справка по подкомандам.
- string
$formatoptional 'text' - Определяет формат вывода, может быть text или xml
- integer
$widthoptional 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[]Подробное описание свойств
$_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.7/class-Cake.Console.ConsoleOptionParser.html