Класс Command
Базовый класс для команд, использующих фреймворк CakePHP со всем стеком.
Включает трейты, которые интегрируют логирование и модели ORM в консольные команды.
Константы
-
intCODE_ERROR1
Значение кода ошибки по умолчанию
-
intCODE_SUCCESS0
Значение кода успеха по умолчанию
Краткое описание свойств
- $_modelFactories protected
array<callableCake\Datasource\Locator\LocatorInterface>Список переопределенных функций фабрики моделей.
- $_modelType protected
stringТип модели для использования.
- $_tableLocator protected
Cake\ORM\Locator\LocatorInterface|nullЭкземпляр локализации таблицы
- $defaultTable protected
string|nullПсевдоним таблицы по умолчанию для этого объекта.
- $modelClass protected deprecated
string|nullИмя основного класса модели для этого объекта. Должно быть во множественном числе. CakePHP не будет склонять имя.
- $name protected
stringИмя этой команды.
Краткое описание методов
-
__construct() public
Конструктор
-
_setModelClass() protected
Установить свойство modelClass на основе соглашений.
-
abort() public
Останов процесс с StopException.
-
buildOptionParser() protected
Метод-хук для определения парсера опций этой команды.
-
defaultName() public static
Получить имя команды.
-
displayHelp() protected
Вывод содержимого справки
-
execute() public
Реализуйте этот метод с логикой вашей команды.
-
executeCommand() public
Выполнить другую команду с заданным набором аргументов.
-
fetchTable() public
Удобный метод для получения экземпляра таблицы.
-
getModelType() public
Получить тип модели, который будет использоваться этим классом
-
getName() public
Получить имя команды.
-
getOptionParser() public
Получить парсер опций.
-
getRootName() public
Получить имя корневой команды.
-
getTableLocator() public
Получить локализатор таблиц.
-
initialize() public
Метод-хук, вызываемый CakePHP, когда команда собирается быть выполнена.
-
loadModel() public deprecated
Загружает и строит объекты репозиториев, необходимые этому объекту
-
log() public
Удобный метод для записи сообщения в журнал. Для получения дополнительной информации о записи в журналы, см. Log::write().
-
modelFactory() public
Переопределить существующее вызываемое значение для генерации репозиториев заданного типа.
-
run() public
Выполнить команду.
-
setModelType() public
Установить тип модели, который будет использоваться этим классом
-
setName() public
Установить имя, которое эта команда использует в коллекции.
-
setOutputLevel() protected
Установить уровень вывода на основе аргументов.
-
setTableLocator() public
Устанавливает локализатор таблиц.
Подробное описание методов
__construct() public
__construct()
Конструктор
По умолчанию CakePHP создаёт объекты команд при построении CommandCollection для вашего приложения.
_setModelClass() protected
_setModelClass(string $name): void
Установить свойство modelClass на основе соглашений.
Если свойство уже установлено, оно не будет перезаписано.
Параметры
-
string$name Имя класса.
Возвращает
voidabort() public
abort(int $code = self::CODE_ERROR): void
Прервать текущий процесс с помощью StopException.
Параметры
-
int$code optional Код завершения.
Возвращает
voidИсключения
Cake\Console\Exception\StopExceptionbuildOptionParser() protected
buildOptionParser(Cake\Console\ConsoleOptionParser $parser): Cake\Console\ConsoleOptionParser
Метод-обработчик для определения парсера опций данной команды.
Параметры
-
Cake\Console\ConsoleOptionParser$parser Парсер, который нужно определить
Возвращает
Cake\Console\ConsoleOptionParserdefaultName() public static
defaultName(): string
Получить имя команды.
Возвращает имя команды, основанное на имени класса. Например, для команды с именем класса UpdateTableCommand возвращаемым именем команды будет 'update_table'.
Возвращает
stringdisplayHelp() protected
displayHelp(Cake\Console\ConsoleOptionParser $parser, Cake\Console\Arguments $args, Cake\Console\ConsoleIo $io): void
Вывод содержимого справки.
Параметры
-
Cake\Console\ConsoleOptionParser$parser Парсер опций.
-
Cake\Console\Arguments$args Аргументы команды.
-
Cake\Console\ConsoleIo$io Ввод-вывод консоли
Возвращает
voidexecute() public
execute(Cake\Console\Arguments $args, Cake\Console\ConsoleIo $io): int|null|void
Реализуйте этот метод с логикой вашей команды.
Параметры
-
Cake\Console\Arguments$args Аргументы команды.
-
Cake\Console\ConsoleIo$io Ввод-вывод консоли.
Возвращает
int|null|voidexecuteCommand() public
executeCommand(Cake\Console\CommandInterface|string $command, array $args = [], Cake\Console\ConsoleIo|null $io = null): int|null
Выполнить другую команду с указанным набором аргументов.
Если вы используете строковое имя команды, зависимости этой команды не будут разрешены контейнером приложения. Вместо этого вам нужно передать команду как объект со всеми её зависимостями.
Параметры
-
Cake\Console\CommandInterface|string$command Имя класса команды или экземпляр команды.
-
array$args optional Аргументы для вызова команды.
-
Cake\Console\ConsoleIo|null$io optional Экземпляр ConsoleIo для использования в исполняемой команде.
Возвращает
int|nullfetchTable() public
fetchTable(string|null $alias = null, array<string, mixed> $options = []): Cake\ORM\Table
Удобный метод для получения экземпляра таблицы.
Параметры
-
string|null$alias optional Имя псевдонима, который нужно получить. Должно быть в формате CamelCase. Если
nullиспользуется значение свойства $defaultTable.-
array<string, mixed>$options optional Опции, с которыми нужно построить таблицу. Если таблица уже загружена, опции реестра будут проигнорированы.
Возвращает
Cake\ORM\TableИсключения
Cake\Core\Exception\CakeExceptionЕсли аргумент `$alias` и свойство `$defaultTable` оба равны `null`.
См. также
getModelType() public
getModelType(): string
Получить тип модели, который будет использоваться этим классом.
Возвращает
stringgetName() public
getName(): string
Получить имя команды.
Возвращает
stringgetOptionParser() public
getOptionParser(): Cake\Console\ConsoleOptionParser
Получить парсер опций.
Вы можете переопределить buildOptionParser(), чтобы определить свои опции и аргументы.
Возвращает
Cake\Console\ConsoleOptionParserИсключения
RuntimeExceptionКогда парсер некорректен
getRootName() public
getRootName(): string
Получить имя корневой команды.
Возвращает
stringgetTableLocator() public
getTableLocator(): Cake\ORM\Locator\LocatorInterface
Получить локатор таблиц.
Возвращает
Cake\ORM\Locator\LocatorInterfaceinitialize() public
initialize(): void
Метод-обработчик, вызываемый CakePHP, когда команда собирается быть выполнена.
Переопределите этот метод и реализуйте дорогостоящие/важные шаги настройки, которые не должны выполняться при каждом запуске команды. Этот метод будет вызван перед проверкой и обработкой опций и аргументов.
Возвращает
voidloadModel() public
loadModel(string|null $modelClass = null, string|null $modelType = null): Cake\Datasource\RepositoryInterface
Загружает и создает объекты репозитория, необходимые для этого объекта.
Обычно используется для загрузки объектов ORM Table по мере необходимости. Также может использоваться для загрузки других типов объектов репозитория, используемых вашим приложением.
Если поставщик репозитория не возвращает объект, будет выброшено MissingModelException.
Параметры
-
string|null$modelClass optional Имя класса модели для загрузки. По умолчанию $this->modelClass. Имя может быть псевдонимом, например
'Post'или полным именем класса, напримерApp\Model\Table\PostsTable::class.-
string|null$modelType optional Тип репозитория для загрузки. По умолчанию значение getModelType().
Возвращает
Cake\Datasource\RepositoryInterfaceИсключения
Cake\Datasource\Exception\MissingModelExceptionЕсли класс модели не найден.
UnexpectedValueExceptionЕсли аргумент `$modelClass` не указан, а значение свойства ModelAwareTrait::$modelClass пустое.
log() public
log(string $message, string|int $level = LogLevel::ERROR, array|string $context = []): bool
Удобный метод для записи сообщения в журнал. См. Log::write() для получения дополнительной информации о записи в журналы.
Параметры
-
string$message Сообщение журнала.
-
string|int$level optional Уровень ошибки.
-
array|string$context optional Дополнительные данные журнала, относящиеся к этому сообщению.
Возвращает
boolmodelFactory() public
modelFactory(string $type, Cake\Datasource\Locator\LocatorInterface|callable $factory): void
Переопределить существующую вызываемую функцию для генерации репозиториев заданного типа.
Параметры
-
string$type Имя типа репозитория, для которого предназначена фабричная функция.
-
Cake\Datasource\Locator\LocatorInterface|callable$factory Фабричная функция, используемая для создания экземпляров.
Возвращает
voidrun() public
run(array $argv, Cake\Console\ConsoleIo $io): int|null
Выполнить команду.
Параметры
-
array$argv -
Cake\Console\ConsoleIo$io
Возвращает
int|nullsetModelType() public
setModelType(string $modelType): $this
Установить тип модели, используемой этим классом
Параметры
-
string$modelType Тип модели
Возвращает
$thissetName() public
setName(string $name): $this
Установить имя, используемое этой командой в коллекции.
Обычно вызывается коллекцией команд при добавлении команды. Требуется, чтобы имя содержало хотя бы один пробел, чтобы можно было вычислить корневую команду.
Параметры
-
string$name
Возвращает
$thissetOutputLevel() protected
setOutputLevel(Cake\Console\Arguments $args, Cake\Console\ConsoleIo $io): void
Установить уровень вывода на основе аргументов.
Параметры
-
Cake\Console\Arguments$args Аргументы команды.
-
Cake\Console\ConsoleIo$io Ввод-вывод консоли
Возвращает
voidsetTableLocator() public
setTableLocator(Cake\ORM\Locator\LocatorInterface $tableLocator): $this
Устанавливает локатор таблицы.
Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocator Экземпляр LocatorInterface.
Возвращает
$thisПодробное описание свойств
$_modelFactories protected
Список переопределенных функций фабрики моделей.
Тип
array<callableCake\Datasource\Locator\LocatorInterface>$_modelType protected
Тип модели для использования.
Тип
string$_tableLocator protected
Экземпляр локатора таблицы
Тип
Cake\ORM\Locator\LocatorInterface|null$defaultTable protected
Псевдоним таблицы по умолчанию для этого объекта.
Тип
string|null$modelClass protected deprecated
Основное имя класса модели этого объекта. Должно быть во множественном числе. CakePHP не будет склонять имя.
Пример: Для объекта с именем 'Комментарии', modelClass будет 'Комментарии'. Классы плагинов должны использовать имена в формате Plugin.Comments для правильной загрузки моделей из соответствующего плагина.
Использование пустой строки для отключения автоматической загрузки для этого объекта. Значение null автоматически определяет, исходя из имени контроллера.
Тип
string|null$name 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.3/class-Cake.Command.Command.html