Spec-Zone.ru › CakePHP 3.2

Класс 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 param в 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

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

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

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

  • help() public

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

  • merge() public
    Получает или устанавливает имя команды для shell/задачи.
  • 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 optional null
Имя команды, для которой предназначен этот парсер. Имя команды используется для генерации справки.
boolean $defaultOptions optional 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
Args

Исключения

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.
  • 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 )

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

Параметры

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–2016 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.
http://api.cakephp.org/3.2/class-Cake.Console.ConsoleOptionParser.html

Spec-Zone.ru

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