Spec-Zone.ru › CakePHP 3.8

Класс 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 необязательно 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
Параметры для добавления обработанного значения

Возвращает

array
Params с добавленной опцией.

_parseOption()source protected

_parseOption( string $name , array $params )

Разбор опции по её индексу.

Параметры

string $name
Имя для разбора.
array $params
Параметры для добавления обработанного значения

Возвращает

array
Params с добавленной опцией.

Исключения

Cake\Console\Exception\ConsoleException

_parseShortOption()source protected

_parseShortOption( string $option , array $params )

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

Параметры

string $option
Опция для разбора.
array $params
Параметры для добавления обработанного значения

Возвращает

array
Params с добавленной опцией.

Исключения

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 $params optional []
Параметры для аргумента, см. выше.

Возвращает


$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 $options optional []
Массив параметров, определяющих поведение опции

Возвращает


$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 $options optional []
Массив параметров, см. выше.

Возвращает


$this

addSubcommands()source public

addSubcommands( array $commands )

Добавление нескольких подкоманд одновременно.

Параметры

array $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.
     ]
];

Параметры

array $spec
Спецификация для создания OptionParser.
boolean $defaultOptions optional true
Указать, нужно ли устанавливать опции verbose и quiet.

Возвращает

Cake\Console\ConsoleOptionParser
END_OF_DOCUMENT_MARKER

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 , 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
Значение описания

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.8/class-Cake.Console.ConsoleOptionParser.html

Spec-Zone.ru

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