Spec-Zone.ru › CakePHP 3.3

Класс 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
    array
    Определения позиционных аргументов.
  • $_command protected
    string
    Имя команды.
  • $_description protected
    string
    Текст описания — отображается перед опциями при генерации справки
  • $_epilog protected
    string
    Текст эпилога — отображается после опций при генерации справки
  • $_options protected
    array
    Определения опций.
  • $_shortOptions protected
    string
    Карта коротких -> длинных опций, генерируемая при использовании addOption()
  • $_subcommands protected
    array
    Подкоманды для этой оболочки.
  • $_tokens protected
    array
    Массив аргументов (argv).

Краткое описание методов

  • __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

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

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

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

  • help() public

    Получение отформатированной справки для этого объекта парсера. Генерирует текст справки на основе описания, опций, аргументов, подкоманд и эпилога в парсере.

  • merge() public
    Получение или установка имени команды для оболочки/задачи.
  • options() public
    Получение определённых опций в парсере.
  • parse() public

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

  • removeOption() public
    Удаление опции из парсера опций.
  • removeSubcommand() public
    Удаление подкоманды из парсера опций.
  • 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
Массив обработанных аргументов для добавления.

Возвращает

array
Аргументы

Выбрасывает

Cake\Console\Exception\ConsoleException

_parseLongOption()source protected

_parseLongOption( string $option , array $params )

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

Параметры

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

Возвращает

array
Параметры с добавленным $option

_parseOption()source protected

_parseOption( string $name , array $params )

Обработать параметр по его индексу имени.

Параметры

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

Возвращает

array
Параметры с добавленным $option

Выбрасывает

Cake\Console\Exception\ConsoleException

_parseShortOption()source protected

_parseShortOption( string $option , array $params )

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

Параметры

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

Возвращает

array
Параметры с добавленным $option

Выбрасывает

Cake\Console\Exception\ConsoleException
При обнаружении неизвестных коротких параметров.

addArgument()source public

addArgument( Cake\Console\ConsoleInputArgument|string $name , array $params [] )

Добавить позиционный аргумент к парсеру параметров.

Параметры

  • help Текст справки для отображения для этого аргумента.
  • required Является ли этот параметр обязательным.
  • index Индекс аргумента, если он не определен, аргумент будет добавлен в конец аргументов. Если вы определите один и тот же индекс дважды, первый параметр будет перезаписан.
  • choices Список допустимых вариантов для этого аргумента. Если оставлено пустым, все значения допустимы. При встрече недопустимого значения будет возбуждено исключение.

Параметры

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 Список допустимых вариантов для этого параметра. Если оставлено пустым, все значения допустимы. При встрече недопустимого значения будет возбуждено исключение.

Параметры

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

arguments()source public

arguments( )

Получить аргументы, определённые в парсере.

Возвращает

array
Массив описаний аргументов

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.

Возвращает


$this
END_OF_DOCUMENT_MARKER

command()source public

command( string|null $text null )

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

Параметры

string|null $text необязательно null
Текст для задания или null, если нужно прочитать

Возвращает

string|Cake\Console\ConsoleOptionParser
$this Если чтение, значение команды. Если установка, будет возвращён $this

create()source public static

create( string|null $command , boolean $defaultOptions true )

Статический фабричный метод для создания новых парсеров опций, позволяющий цепочку вызовов методов.

Параметры

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

Возвращает


$this

description()source public

description( string|array|null $text null )

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

Параметры

string|array|null $text необязательно null

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

Возвращает

string|Cake\Console\ConsoleOptionParser
$this Если чтение, значение описания. Если установка, будет возвращён $this

epilog()source public

epilog( string|array|null $text null )

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

Параметры

string|array|null $text необязательно null

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

Возвращает

string|Cake\Console\ConsoleOptionParser
$this Если чтение, значение эпилога. Если установка, будет возвращён $this

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
Сгенерированная справка.

merge()source public

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

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

Параметры

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

Возвращает


$this

options()source public

options( )

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

Возвращает

array

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

subcommands()source public

subcommands( )

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

Возвращает

array

toArray()source public

toArray( )

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

Возвращает

array

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

$_argssource

protected array

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

См. также

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

$_commandsource

protected string

Имя команды.

''

$_descriptionsource

protected string

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

См. также

\Cake\Console\ConsoleOptionParser::description()
null

$_epilogsource

protected string

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

См. также

\Cake\Console\ConsoleOptionParser::epilog()
null

$_optionssource

protected array

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

См. также

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

$_shortOptionssource

protected string

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

[]

$_subcommandssource

protected array

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

См. также

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

$_tokenssource

protected array

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

[]

© 2005–2017 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.3/class-Cake.Console.ConsoleOptionParser.html

Spec-Zone.ru

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