Обзор CLI — IO7 Framework
Внимание
Данная статья документации написана нейросетью. Возможны некоторые расхождения и неточность информации!
Обзор
IO7 предоставляет собственную CLI-систему для создания и запуска команд. Ядро CLI парсит аргументы и опции, а команды наследуют базовый класс IO\Console\Command.
Архитектура
IO\Console\Kernel — Ядро CLI (парсинг аргументов, запуск команд)
IO\Console\Command — Базовый класс для CLI команд
IO\Console\Commands\* — Готовые команды (31 команда)
IO\Console\Services\* -- Сервисы (ScheduleService)
Быстрый старт
Запуск CLI
php iocli <command> [arguments] [options]
Доступные команды
php iocli app:version
php iocli migrate
php iocli db:seed
php iocli make:migration create_users_table
php iocli make:seeder UserSeeder
php iocli make:factory UserFactory
php iocli make:test UserTest
php iocli make:class User
php iocli make:api User
php iocli make:command SendEmail
php iocli make:route Web
php iocli make:middleware Auth
php iocli serve
php iocli tinker
php iocli cache:clear
php iocli route:list
php iocli queue:work
php iocli schedule:run
Кастомная команда
class SendEmailCommand extends \IO\Console\Command
{
protected string $signature = 'email:send {user_id} {--queue}';
protected string $description = 'Отправить email пользователю';
public function handle(): int
{
$userId = $this->argument('user_id');
$queue = $this->option('queue');
$this->info("Email отправлен пользователю {$userId}");
return 0;
}
}
Регистрация команды
// В init.php или bootstrap
$kernel = new \IO\Console\Kernel();
$kernel->register('email:send', SendEmailCommand::class);
$kernel->run();