Console Component
Компонент triangle/console предоставляет систему консольных команд и CLI-инструментов для Triangle Framework.
Установка
composer require triangle/console
Основные возможности
Встроенные команды
Компонент предоставляет следующие встроенные команды:
Управление приложением
php master start— запуск сервераphp master stop— остановка сервераphp master restart— перезапуск сервераphp master status— статус сервераphp master reload— перезагрузка конфигурацииphp master connections— список подключений
Генерация кода
php master make:controller <name>— создание контроллераphp master make:model <name>— создание моделиphp master make:middleware <name>— создание middlewarephp master make:command <name>— создание командыphp master make:bootstrap <name>— создание класса bootstrap
Управление плагинами
php master plugin:create <name>— создание плагинаphp master plugin:install <name>— установка плагинаphp master plugin:uninstall <name>— удаление плагинаphp master plugin:enable <name>— включение плагинаphp master plugin:disable <name>— отключение плагинаphp master plugin:update <name>— обновление плагинаphp master plugin:export <name>— экспорт плагина
Утилиты
php master route:list— список всех маршрутовphp master app:create <name>— создание нового приложения
Создание собственных команд
Создайте класс команды, наследующийся от Triangle\Console\Command:
<?php
namespace App\Console\Commands;
use Triangle\Console\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class MyCommand extends Command
{
protected $name = 'my:command';
protected $description = 'Описание команды';
public function execute(InputInterface $input, OutputInterface $output): int
{
$output->writeln('Выполнение команды...');
// Ваш код здесь
return self::SUCCESS;
}
}
Зарегистрируйте команду в конфигурации:
// config/console.php
return [
'commands' => [
\App\Console\Commands\MyCommand::class,
],
];
Работа с аргументами и опциями
<?php
namespace App\Console\Commands;
use Triangle\Console\Command;
class ProcessCommand extends Command
{
protected $name = 'process:data';
protected $description = 'Обработка данных';
public function configure(): void
{
$this->addArgument('file', InputArgument::REQUIRED, 'Путь к файлу');
$this->addOption('force', 'f', InputOption::VALUE_NONE, 'Принудительная обработка');
}
public function execute(InputInterface $input, OutputInterface $output): int
{
$file = $input->getArgument('file');
$force = $input->getOption('force');
// Ваш код
return self::SUCCESS;
}
}
Сборка бинарных файлов
Сборка PHAR-архива
php master build:phar
Сборка бинарного файла
php master build:bin
Конфигурация
Настройки консоли находятся в файле config/console.php:
return [
'commands' => [
// список команд
],
];