Spec-Zone.ru › CakePHP 3.6

Класс ConsoleOptionParser

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

Опции

Именованные аргументы представлены в двух формах: длинной и короткой. Длинные аргументы предваряются двумя тире и имеют более подробное имя опции. Например: --version. Короткие аргументы предваряются одним тире и имеют длину только один символ. Они обычно соответствуют длинной опции и предоставляют более краткую альтернативу.

Использование опций

Опции могут быть определены с помощью длинных и коротких форм. Используя $parser->addOption(), вы можете определять новые опции. Имя опции используется в качестве её длинной формы, и вы можете указать дополнительную короткую форму, используя short опцию. Короткие опции должны иметь длину только один символ. Использование более одного символа для короткой опции вызовет исключение.

Вызов опций может быть осуществлён с использованием синтаксиса, аналогичного большинству *nix инструментов командной строки. Длинные опции могут включать = или опустить его.

cake myshell command --connection default --name=something

Короткие опции могут быть определены по отдельности или группами.

cake myshell command -cn

Короткие опции могут быть объединены в группы, как показано выше. Каждый символ в группе будет рассматриваться как отдельная опция. Предыдущий пример эквивалентен:

cake myshell command -c -n

Короткие опции также могут принимать значения:

cake myshell command -c default

Позиционные аргументы

Если позиционные аргументы не определены, все из них будут обработаны. Если вы определяете позиционные аргументы, любые аргументы, превышающие определённое количество, вызовут исключение. Дополнительно вы можете объявить аргументы необязательными, установив параметр required в false.

$parser->addArgument('model', ['required' => false]);

Предоставление текста справки

Предоставляя текст справки для ваших позиционных и именованных аргументов, ConsoleOptionParser может сгенерировать для вас отображение справки. Справку оболочек можно просмотреть, используя --help или -h переключатель.

Пространство имён: Cake\Console
Расположение: Console/ConsoleOptionParser.php

Резюме свойств

  • $_args protected
    Cake\Console\ConsoleInputArgument[]
    Определения позиционных аргументов.
  • $_command protected
    string
    Имя команды.
  • $_description protected
    string
    Текст описания - отображается перед опциями при генерации справки
  • $_epilog protected
    string
    Текст эпилога - отображается после опций при генерации справки
  • $_options protected
    Cake\Console\ConsoleInputOption[]
    Определения опций.
  • $_shortOptions protected
    array
    Карта коротких -> длинных опций, сгенерированная при использовании addOption()
  • $_subcommandSort protected
    boolean
    Опция сортировки подкоманд
  • $_subcommands protected
    Cake\Console\ConsoleInputSubcommand[]
    Подкоманды для этой оболочки.
  • $_tokens protected
    array
    Массив аргументов (argv).
  • $rootName protected
    string
    Корневой псевдоним, используемый в выводе справки

Резюме методов

  • __construct() public
    Создать OptionParser, чтобы вы могли определить его поведение
  • _nextToken() protected
    Найти следующий токен в наборе argv.
  • _optionExists() protected
    Проверить, определён ли для $name параметр (короткий/длинный).
  • _parseArg() protected

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

  • _parseLongOption() protected

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

  • _parseOption() protected
    Обработать параметр по его индексу имени.
  • _parseShortOption() protected

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

  • addArgument() public
    Добавить позиционный аргумент в парсер параметров.
  • addArguments() public

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

  • addOption() public

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

  • addOptions() public

    Добавить сразу несколько параметров. Принимает массив определений параметров. Ключи используются в качестве имён параметров, а значения — в качестве параметров параметра.

  • addSubcommand() public

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

  • addSubcommands() public
    Добавить сразу несколько подкоманд.
  • argumentNames() public
    Получить список имён аргументов.
  • arguments() public
    Получить аргументы, определённые в парсере.
  • buildFromArray() public static
    Создать парсер из массива. Использует массив, похожий на
  • command() public deprecated
    Получить или установить имя команды для shell/задачи.
  • create() public static
    Статический фабричный метод для создания новых OptionParsers, чтобы вы могли цеплять методы к ним.
  • description() public deprecated
    Получить или установить текст описания для shell/задачи.
  • enableSubcommandSort() public
    Включает сортировку подкоманд
  • epilog() public deprecated

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

  • findClosestItem() protected

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

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

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

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

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

  • getShortOptionError() protected

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

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

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

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

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

  • setHelpAlias() public deprecated
    Установить псевдоним, используемый в HelpFormatter
  • setRootName() public
    Установить корневое имя, используемое в HelpFormatter
  • subcommands() public
    Получить массив определённых подкоманд
  • toArray() public
    Возвращает массивное представление этого парсера.

Подробное описание метода

__construct()source public

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

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

Параметры

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

Указывает, хотите ли вы установить параметры verbose и quiet. Установка этого значения в false предотвратит добавление параметров --verbose и --quiet.

_nextToken()source protected

_nextToken( )

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

Возвращает

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

_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

argumentNames()source public

argumentNames( )

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

Возвращает

string[]

arguments()source public

arguments( )

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

Возвращает

Cake\Console\ConsoleInputArgument[]

buildFromArray()source public static

buildFromArray( array $spec , boolean $defaultOptions = true )

Построение обработчика из массива. Использует массив, подобный

$spec = [
     'description' => 'text',
     'epilog' => 'text',
     'arguments' => [
         // list of arguments compatible with addArguments.
     ],
     'options' => [
         // list of options compatible with addOptions
     ],
     'subcommands' => [
         // list of subcommands to add.
     ]
];

Параметры

массив $spec
Спецификация для построения ConsoleOptionParser.
boolean $defaultOptions необязательно true
Указывает, хотите ли вы установить опции verbose и quiet.

Возвращает

Cake\Console\ConsoleOptionParser

command()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\ConsoleOptionParser

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

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

Возвращает

boolean

merge()source public

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

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

Параметры

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

Возвращает


$this

options()source public

options( )

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

Возвращает

Cake\Console\ConsoleInputOption[]

parse()source public

parse( array $argv )

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

Параметры

array $argv
Массив аргументов (argv) для разбора.

Возвращает

array
[$params, $args]

Выбрасывает

Cake\Console\Exception\ConsoleException
При возникновении недействительного параметра.

removeOption()source public

removeOption( string $name )

Удалить опцию из анализатора опций.

Параметры

string $name
Имя опции для удаления.

Возвращаемое значение


$this

removeSubcommand()source public

removeSubcommand( string $name )

Удалить подкоманду из анализатора опций.

Параметры

string $name
Имя подкоманды для удаления.

Возвращаемое значение


$this

setCommand()source public

setCommand( string $text )

Устанавливает имя команды для оболочки/задачи.

Параметры

string $text
Текст для установки.

Возвращаемое значение


$this

setDescription()source public

setDescription( string|array $text )

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

Параметры

string|array $text

Текст для установки. Если массив, текст будет имплодирован с помощью "\n".

Возвращаемое значение


$this

setEpilog()source public

setEpilog( string|array $text )

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

Параметры

string|array $text

Текст для установки. Если массив, текст будет имплодирован с помощью "\n".

Возвращаемое значение


$this

setHelpAlias()source public deprecated

setHelpAlias( string $alias )

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

Устаревшее

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

Параметры

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

setRootName()source public

setRootName( string $name )

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

Параметры

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

Возвращаемое значение


$this

subcommands()source public

subcommands( )

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

Возвращаемое значение

Cake\Console\ConsoleInputSubcommand[]

toArray()source public

toArray( )

Возвращает массив, представляющий этот анализатор.

Возвращаемое значение

массив

Подробное описание свойств

$_argssource

protected Cake\Console\ConsoleInputArgument[]

Определения позиционных аргументов.

См. также

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

$_commandsource

protected string

Имя команды.

''

$_descriptionsource

protected string

Текст описания — отображается перед опциями при генерации справки

См. также

\Cake\Console\ConsoleOptionParser::description()

$_epilogsource

protected string

Текст эпилога — отображается после опций при генерации справки

См. также

\Cake\Console\ConsoleOptionParser::epilog()

$_optionssource

protected Cake\Console\ConsoleInputOption[]

Определения опций.

См. также

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

$_shortOptionssource

protected array

Отображение коротких —> длинных опций, сгенерированное при использовании addOption()

[]

$_subcommandSortsource

protected boolean

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

true

$_subcommandssource

protected Cake\Console\ConsoleInputSubcommand[]

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

См. также

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

$_tokenssource

protected array

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

[]

$rootNamesource

protected string

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

См. также

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

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.6/class-Cake.Console.ConsoleOptionParser.html

Spec-Zone.ru

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