Класс 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
$commandнеобязательно null - Имя команды, для которой предназначен этот парсер. Имя команды используется для генерации справки.
- boolean
$defaultOptionsнеобязательно true Указывает, хотите ли вы, чтобы параметры verbose и quiet были установлены. Если установить значение false, добавление параметров
--verboseи--quietбудет предотвращено.
_nextToken()source protected
_nextToken( )
Находит следующий токен в наборе argv.
Возвращает
stringследующий токен или ''
_optionExists()source protected
_optionExists( string $name )
Проверка наличия опции (короткой/длинной) для $name.
Параметры
- string
$name - Имя опции.
Возвращает
boolean_parseArg()source protected
_parseArg( string $argument , array $args )
Разбор аргумента и проверка, что он не превышает количество аргументов и является допустимым выбором.
Параметры
- string
$argument - Аргумент для добавления
- array
$args - Массив обработанных аргументов для добавления.
Возвращает
string[]Args
Исключения
Cake\Console\Exception\ConsoleException_parseLongOption()source protected
_parseLongOption( string $option , array $params )
Разбор значения длинной опции из $this->_tokens. Обрабатывает опции с = в них.
Параметры
- string
$option - Опция для разбора.
- array
$params - Параметры для добавления обработанного значения
Возвращает
arrayParams с добавленной опцией.
_parseOption()source protected
_parseOption( string $name , array $params )
Разбор опции по её индексу.
Параметры
- string
$name - Имя для разбора.
- array
$params - Параметры для добавления обработанного значения
Возвращает
arrayParams с добавленной опцией.
Исключения
Cake\Console\Exception\ConsoleException_parseShortOption()source protected
_parseShortOption( string $option , array $params )
Разбор значения короткой опции из $this->_tokens. Если $option представляет собой комбинацию нескольких сокращений, таких как -otf, они будут перенесены в стек токенов и обработаны индивидуально.
Параметры
- string
$option - Опция для разбора.
- array
$params - Параметры для добавления обработанного значения
Возвращает
arrayParams с добавленной опцией.
Исключения
Cake\Console\Exception\ConsoleExceptionПри встрече неизвестных коротких опций.
addArgument()source public
addArgument( Cake\Console\ConsoleInputArgument|string $name , array $params = [] )
Добавление позиционного аргумента к парсеру опций.
Параметры
-
helpТекст справки для данного аргумента. -
requiredЯвляется ли этот параметр обязательным. -
indexИндекс аргумента, если не определён, аргумент будет добавлен в конец аргументов. Если вы определите один и тот же индекс дважды, первая опция будет перезаписана. -
choicesСписок допустимых значений для данного аргумента. Если пустой, все значения допустимы. Исключение будет вызвано при parse() при обнаружении недопустимого значения.
Параметры
-
Cake\Console\ConsoleInputArgument|string$name Имя аргумента. Также может принимать экземпляр ConsoleInputArgument.
- array
$paramsoptional [] - Параметры для аргумента, см. выше.
Возвращает
$this
addArguments()source public
addArguments( array $args )
Добавление нескольких аргументов одновременно. Принимает массив определений аргументов. Ключи используются как имена аргументов, а значения — как параметры для аргумента.
Параметры
- array
$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|string$name Долгое имя, которое будет использоваться для разбора значения, когда обрабатываются опции. Также может принимать экземпляр ConsoleInputOption.
- array
$optionsoptional [] - Массив параметров, определяющих поведение опции
Возвращает
$this
addOptions()source public
addOptions( array $options )
Добавление нескольких опций одновременно. Принимает массив определений опций. Ключи используются как имена опций, а значения — как параметры для опции.
Параметры
- array
$options - Массив опций для добавления.
Возвращает
$this
См. также
\Cake\Console\ConsoleOptionParser::addOption()addSubcommand()source public
addSubcommand( Cake\Console\ConsoleInputSubcommand|string $name , array $options = [] )
Добавление подкоманды в список подкоманд. Подкоманды обычно являются методами вашего Shell, но также могут использоваться для документирования задач.
Опции
-
help- Текст справки для подкоманды. -
parser- ConsoleOptionParser для подкоманды. Это позволяет создавать парсеры опций, специфичные для метода. При генерации справки по подкоманде, если парсер присутствует, он будет использован.
Параметры
-
Cake\Console\ConsoleInputSubcommand|string$name - Имя подкоманды. Также может принимать экземпляр ConsoleInputSubcommand
- array
$optionsoptional [] - Массив параметров, см. выше.
Возвращает
$this
addSubcommands()source public
addSubcommands( array $commands )
Добавление нескольких подкоманд одновременно.
Параметры
- array
$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.
]
]; Параметры
- array
$spec - Спецификация для создания OptionParser.
- boolean
$defaultOptionsoptional 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 , 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
$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.8/class-Cake.Console.ConsoleOptionParser.html