Перейти к основному содержимому

Artisan Worker

Выполняйте команды Laravel Artisan через интерфейс sTask с отслеживанием прогресса в реальном времени и интерактивным UI.

Возможности

  • ✅ Выполнение любой Artisan команды из менеджера
  • ✅ Вывод в реальном времени с подсветкой синтаксиса
  • ✅ Интерактивный список команд - клик для запуска
  • ✅ Проверка безопасности и ограничения
  • ✅ Аудит логирования
  • ✅ Безопасные настройки по умолчанию

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

Базовое

  1. Перейдите в sTaskПанель
  2. Найдите виджет Artisan
  3. Введите команду (например, cache:clear) или оставьте пустым для списка
  4. При желании добавьте аргументы
  5. Нажмите Запустить задание

Интерактивный режим

Выполните без команды чтобы увидеть все доступные команды. Кликните на любую команду для мгновенного запуска.

Безопасность

Конфигурация в config/artisan_security.php:

return [
// Запрещены в production
'dangerous_commands' => [
'migrate:fresh',
'migrate:reset',
'db:wipe',
],

// Требуют подтверждения
'confirmation_required' => [
'migrate',
'db:seed',
],

// Whitelist (если установлен, разрешены только эти)
'whitelist' => [],

// Blacklist (всегда запрещены)
'blacklist' => [],

// Включить безопасность
'enabled' => true,

// Логировать выполнения
'log_executions' => true,
];

Уровни безопасности

  1. Опасные команды - Заблокированы в production
  2. Требуют подтверждения - Логируют предупреждения
  3. Whitelist/Blacklist - Гибкая фильтрация с wildcards
  4. Защита от инъекций - Блокирует специальные символы
  5. Аудит логирование - Все выполнения логируются

Примеры

Разрешить только cache команды:

'whitelist' => [
'cache:*',
'view:clear',
],

Заблокировать конкретную команду:

'blacklist' => [
'key:generate',
'down',
],

UI

Интерфейс в стиле консоли

  • VS Code Dark+ тема
  • Моноширинный шрифт
  • Цветной вывод:
    • 🔵 Синий: Инфо
    • 🟢 Зеленый: Успех и команды
    • 🟡 Желтый: Предупреждения
    • 🔴 Красный: Ошибки
    • ⚪ Серый: Описания

Интерактивные команды

  • Наведение для подсветки
  • Клик для выполнения
  • Мгновенная обратная связь

Конфигурация

Скопируйте конфиг для настройки:

cp packages/sTask/config/artisan_security.php core/custom/config/artisan_security.php

Отредактируйте core/custom/config/artisan_security.php с вашими настройками.

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

use Seiger\sTask\Workers\ArtisanWorker;

$worker = new ArtisanWorker();
$task = $worker->createTask('run', [
'command' => 'cache:clear',
'arguments' => '--tags=views',
]);

Лучшие практики

  1. Используйте whitelist в production
  2. Регулярно просматривайте логи
  3. Требуйте подтверждения для деструктивных операций
  4. Сначала тестируйте в staging
  5. Делайте бекап перед миграциями