Класс Command
Базовый класс для команд, использующих фреймворк CakePHP.
Включает трейты, которые интегрируют логирование и модели ORM в консольные команды.
Константы
-
intCODE_ERROR1
Значение ошибки по умолчанию
-
intCODE_SUCCESS0
Значение успеха по умолчанию
Краткое описание свойств
- $_modelFactories protected
(callableCake\Datasource\Locator\LocatorInterface)[]Список переопределённых функций фабрики моделей.
- $_modelType protected
stringТип модели для использования.
- $_tableLocator protected
Cake\ORM\Locator\LocatorInterface|nullЭкземпляр локатора таблиц
- $modelClass protected
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
Выполнить другую команду с указанным набором аргументов.
-
getModelType() public
Получить тип модели, который будет использоваться этим классом
-
getName() public
Получить имя команды.
-
getOptionParser() public
Получить парсер опций.
-
getRootName() public
Получить имя корневой команды.
-
getTableLocator() public
Получить локатор таблиц.
-
initialize() public
Метод-обработчик, вызываемый CakePHP, когда команда собирается быть выполнена.
-
loadModel() public
Загружает и создаёт объекты репозитория, необходимые этому объекту
-
log() public
Удобный метод для записи сообщения в Log. См. 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(stringCake\Console\CommandInterface $command, array $args = [], Cake\Console\ConsoleIo $io = null): int|null
Выполняет другую команду с заданным набором аргументов.
Если вы используете имя команды в виде строки, зависимости этой команды не будут разрешены с помощью контейнера приложения. Вместо этого вам нужно передать команду как объект со всеми ее зависимостями.
Параметры
-
stringCake\Console\CommandInterface$command Имя класса команды или экземпляр команды.
-
array$args optional Аргументы для вызова команды.
-
Cake\Console\ConsoleIo$io optional Экземпляр ConsoleIo для использования командой.
Возвращает
int|nullgetModelType() 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'или FQCN, например,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, int|string $level = LogLevel::ERROR, string|array $context = []): bool
Удобный метод для записи сообщения в журнал. Смотрите Log::write() для получения дополнительной информации о записи в журналы.
Параметры
-
string$message Сообщение журнала.
-
int|string$level optional Уровень ошибки.
-
string|array$context optional Дополнительные данные журнала, относящиеся к этому сообщению.
Возвращает
boolmodelFactory() public
modelFactory(string $type, callableCake\Datasource\Locator\LocatorInterface $factory): void
Переопределить существующую вызываемую функцию для создания репозиториев заданного типа.
Параметры
-
string$type Имя типа репозитория, для которого предназначена фабричная функция.
-
callableCake\Datasource\Locator\LocatorInterface$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
Установить имя, используемое этой командой в коллекции.
Обычно вызывается CommandCollection при добавлении команды. Необходимо, чтобы в имени была хотя бы одна пробел, чтобы можно было рассчитать корневую команду.
Параметры
-
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
Список переопределенных функций фабрики моделей.
Тип
(callableCake\Datasource\Locator\LocatorInterface)[]$_modelType protected
Тип модели для использования.
Тип
string$_tableLocator protected
Экземпляр локатора таблицы
Тип
Cake\ORM\Locator\LocatorInterface|null$modelClass protected
Основное имя класса модели для этого объекта. Должно быть в множественном числе. CakePHP не будет склонять имя.
Пример: Для объекта с именем 'Комментарии', modelClass будет 'Комментарии'. Классы плагинов должны использовать имена в формате Plugin.Comments для правильной загрузки моделей из соответствующего плагина.
Используйте пустую строку, чтобы не использовать автоматическую загрузку для этого объекта. Нулевой значение автоматически определяет на основе имени контроллера.
Тип
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.2/class-Cake.Command.Command.html