Scheduler List — це пакет для Laravel, який замінює стандартний вивід php artisan schedule:list на зручну веб-панель. Він зчитує заплановані задачі, показує їхні cron-вирази та час наступного запуску, а також дозволяє запускати команди прямо з браузера та переглядати результат у реальному часі.
# Повний список запланованих задач
Інтерфейс відображає всі задачі, зареєстровані в консольних маршрутах, разом із їхнім графіком, часовим поясом та обмеженнями. Метод description() тепер має практичне значення, оскільки його опис виводиться безпосередньо в UI:
Schedule::command('inspire')
->everyMinute()
->description('Відображає випадкову мотиваційну цитату.');
Задачі автоматично групуються за типом: Artisan-команди, замикання (closures) та shell-завдання. Користувачі можуть фільтрувати список за типом або шукати потрібний таск за назвою, виразом чи описом.
# Запуск задач на вимогу
Якщо функція ручного виконання активована, ви можете запустити задачу, не чекаючи її запланованого часу. Пакет відкриває консольне вікно та транслює термінальний вивід команди в режимі реального часу. Ліміт символів у вікні можна змінити через параметр output_limit (за замовчуванням — 12 000 знаків).
# Безпека та доступ
Панель керування за замовчуванням вимкнена та захищена middleware web та auth. Доступ до інтерфейсу та можливість ручного запуску регулюються через змінні оточення:
SCHEDULER_LIST_ENABLED=true
SCHEDULER_LIST_MANUAL_EXECUTION=false
Для роботи у продакшн-середовищі розробник рекомендує налаштувати Gate, щоб обмежити доступ лише для адміністраторів:
Gate::define('viewSchedulerList', function ($user) {
return $user->is_admin;
});
Врахуйте, що запуск довільних команд через браузер — це потенційний ризик для безпеки, тому manual_execution варто вмикати лише за умови суворого контролю доступу.
# Встановлення
Встановіть пакет за допомогою Composer та опублікуйте файл конфігурації:
composer require devakshay/scheduler-list-laravel
php artisan vendor:publish --tag="scheduler-list-laravel-config"
Після активації панель буде доступна за адресою /schedulers. Дізнатися більше та переглянути вихідний код можна на GitHub або на демо-сайті.