Spec-Zone.ru › CakePHP 4.2

Класс ConsoleOptionParser

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

Опции

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

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

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

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

cake my_command --connection default --name=something

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

cake my_command -cn

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

cake my_command -c -n

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

cake my_command -c default

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

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

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

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

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

Пространство имен: Cake\Console

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

  • $_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
    bool

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

  • $_subcommands protected
    Cake\Console\ConsoleInputSubcommand[]

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

  • $_tokens protected
    array

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

  • $rootName protected
    string

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

END_OF_DOCUMENT_MARKER

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

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

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

  • create() public static

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

  • enableSubcommandSort() public

    Включает сортировку подкоманд

  • getCommand() public

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

  • getDescription() public

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

  • getEpilog() public

    Получает эпилог.

  • help() public

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

  • isSubcommandSortEnabled() public

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

  • merge() public

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

  • options() public

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

  • parse() public

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

  • removeOption() public

    Удаляет параметр из анализатора параметров.

  • removeSubcommand() public

    Удаляет подкоманду из анализатора параметров.

  • setCommand() public

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

  • setDescription() public

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

  • setEpilog() public

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

  • setRootName() public

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

  • subcommands() public

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

  • toArray() public

    Возвращает массивное представление этого анализатора.

END_OF_DOCUMENT_MARKER

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

__construct() public

__construct(string $command = '', bool $defaultOptions = true)

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

Параметры

string $command optional

Имя команды, для которой предназначен этот парсер. Имя команды используется для генерации справки.

bool $defaultOptions optional

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

_nextToken() protected

_nextToken(): string

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

Возвращает

string

_optionExists() protected

_optionExists(string $name): bool

Проверить, определён ли для $name параметр (короткое/длинное имя).

Параметры

string $name

Имя параметра.

Возвращает

bool

_parseArg() protected

_parseArg(string $argument, array $args): string[]

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

Параметры

string $argument

Аргумент для добавления

array $args

Массив обработанных аргументов, к которому нужно добавить.

Возвращает

string[]

Выбрасывает

Cake\Console\Exception\ConsoleException

_parseLongOption() protected

_parseLongOption(string $option, array $params): array

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

Параметры

string $option

Параметр для обработки.

array $params

params для добавления обработанного значения

Возвращает

array

_parseOption() protected

_parseOption(string $name, array $params): array

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

Параметры

string $name

Имя для обработки.

array $params

params для добавления обработанного значения

Возвращает

array

Выбрасывает

Cake\Console\Exception\ConsoleException

_parseShortOption() protected

_parseShortOption(string $option, array $params): array

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

Параметры

string $option

Параметр для обработки.

array $params

params для добавления обработанного значения

Возвращает

array

Выбрасывает

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

addArgument() public

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

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

Параметры

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

Параметры

Cake\Console\ConsoleInputArgument|string $name

Имя аргумента. Также принимает экземпляр ConsoleInputArgument.

array $params optional

Параметры для аргумента, см. выше.

Возвращает

$this

addArguments() public

addArguments(array $args): $this

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

Параметры

array $args

Массив аргументов для добавления.

Возвращает

$this

См. также

\Cake\Console\ConsoleOptionParser::addArgument()

addOption() public

addOption(Cake\Console\ConsoleInputOption|string $name, array $options = []): $this

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

Параметры

  • short — Однобуквенный вариант этого параметра, оставьте неопределённым для отсутствия.
  • help — Текст справки по этому параметру. Используется при генерации справки по параметру.
  • default — Значение по умолчанию для этого параметра. Значения по умолчанию добавляются в обработанные параметры, когда соответствующий параметр не предоставлен или не имеет значения. Использование значений по умолчанию и булевых значений вместе не сработает. Значение по умолчанию — null.
  • boolean — Параметр не использует значение, это просто переключатель. По умолчанию false. Если параметр определён как булевый, он всегда будет добавлен в обработанные параметры. Если параметр отсутствует, он будет false, если присутствует — true.
  • multiple — Параметр может быть предоставлен несколько раз. Обработанный параметр будет массивом значений, когда этот параметр включён.
  • choices — Список допустимых значений для этого параметра. Если оставлен пустым, все значения допустимы. При встрече недопустимого значения во время выполнения parse() будет вызвано исключение.

Параметры

Cake\Console\ConsoleInputOption|string $name

Длинное имя, которое должно быть обработано при разборе параметров. Также принимает экземпляр ConsoleInputOption.

array $options optional

Массив параметров, определяющих поведение параметра

Возвращает

$this

addOptions() public

addOptions(array $options): $this

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

Параметры

array $options

Массив параметров для добавления.

Возвращает

$this

См. также

\Cake\Console\ConsoleOptionParser::addOption()

addSubcommand() public

addSubcommand(Cake\Console\ConsoleInputSubcommand|string $name, array $options = []): $this

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

Параметры

  • help — Текст справки по подкоманде.
  • parser — ConsoleOptionParser для подкоманды. Это позволяет создавать специфичные для метода парсеры параметров. При генерации справки по подкоманде, если парсер присутствует, он будет использован.

Параметры

Cake\Console\ConsoleInputSubcommand|string $name

Имя подкоманды. Также принимает экземпляр ConsoleInputSubcommand.

array $options optional

Массив параметров, см. выше.

Возвращает

$this

addSubcommands() public

addSubcommands(array $commands): $this

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

Параметры

array $commands

Массив подкоманд.

Возвращает

$this

argumentNames() public

argumentNames(): string[]

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

Возвращает

string[]

arguments() public

arguments(): Cake\Console\ConsoleInputArgument[]

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

Возвращает

Cake\Console\ConsoleInputArgument[]

buildFromArray() public static

buildFromArray(array $spec, bool $defaultOptions = true): static

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

$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.

bool $defaultOptions optional

Указать, нужно ли устанавливать опции verbose и quiet.

Возвращает

static

create() public static

create(string $command, bool $defaultOptions = true): static

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

Параметры

string $command

Имя команды, для которой предназначен этот парсер. Имя команды используется для генерации справки.

bool $defaultOptions optional

Указать, нужно ли устанавливать опции verbose и quiet.

Возвращает

static

enableSubcommandSort() public

enableSubcommandSort(bool $value = true): $this

Включает сортировку подкоманд

Параметры

bool $value optional

Включить или отключить сортировку подкоманд

Возвращает

$this

getCommand() public

getCommand(): string

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

Возвращает

string

getDescription() public

getDescription(): string

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

Возвращает

string

getEpilog() public

getEpilog(): string

Получает эпилог.

Возвращает

string

help() public

help(string|null $subcommand = null, string $format = 'text', int $width = 72): string

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

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

Параметры

string|null $subcommand optional

Если присутствует и является валидной подкомандой с связанным парсером. Вместо этого будет показана справка по этой подкоманде.

string $format optional

Определяет формат вывода, может быть текстовым или XML.

int $width optional

Ширина для форматирования пользовательского контента. По умолчанию 72.

Возвращает

string

isSubcommandSortEnabled() public

isSubcommandSortEnabled(): bool

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

Возвращает

bool

merge() public

merge(arrayCake\Console\ConsoleOptionParser $spec): $this

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

Параметры

arrayCake\Console\ConsoleOptionParser $spec

ConsoleOptionParser или спецификация для слияния.

Возвращает

$this

options() public

options(): Cake\Console\ConsoleInputOption[]

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

Возвращает

Cake\Console\ConsoleInputOption[]

parse() public

parse(array $argv): array

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

Параметры

array $argv

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

Возвращает

array

Исключения

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

removeOption() public

removeOption(string $name): $this

Удаляет опцию из парсера опций.

Параметры

string $name

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

Возвращает

$this

removeSubcommand() public

removeSubcommand(string $name): $this

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

Параметры

string $name

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

Возвращает

$this

setCommand() public

setCommand(string $text): $this

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

Параметры

string $text

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

Возвращает

$this

setDescription() public

setDescription(string|array $text): $this

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

Параметры

string|array $text

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

Возвращает

$this

setEpilog() public

setEpilog(string|array $text): $this

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

Параметры

string|array $text

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

Возвращает

$this

setRootName() public

setRootName(string $name): $this

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

Параметры

string $name

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

Возвращает

$this

subcommands() public

subcommands(): Cake\Console\ConsoleInputSubcommand[]

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

Возвращает

Cake\Console\ConsoleInputSubcommand[]

toArray() public

toArray(): array

Возвращает массивное представление этого парсера.

Возвращает

array

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

$_args protected

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

Тип

Cake\Console\ConsoleInputArgument[]

$_command protected

Имя команды.

Тип

string

$_description protected

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

Тип

string

$_epilog protected

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

Тип

string

$_options protected

Определения параметров.

Тип

Cake\Console\ConsoleInputOption[]

$_shortOptions protected

Маппинг коротких —> длинных параметров, генерируется при использовании addOption()

Тип

array

$_subcommandSort protected

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

Тип

bool

$_subcommands protected

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

Тип

Cake\Console\ConsoleInputSubcommand[]

$_tokens protected

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

Тип

array

$rootName protected

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

Тип

string

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

Spec-Zone.ru

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