Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас Реклама
Новини 11 серпня 2026

Laravel artisan dev: керування сервером, чергами, логами та Vite

Laravel 13 представив нову команду artisan dev, яка стандартизує всі інструменти, необхідні для роботи над проєктом: сервер розробки, воркер черг, виведення логів, Vite та інше. До недавнього часу skeleton-додаток об'єднував їх через скрипт dev у composer.json, який запускав чотири команди через npx concurrently.

Заміна composer-скрипта на artisan-команду

Laravel 13.16 замінив це рішення на офіційну команду:

php artisan dev

Скрипт composer dev все ще існує в skeleton-шаблоні, але тепер він лише викликає php artisan dev. Список процесів перенесено в PHP, де ви можете реєструвати власні процеси через клас DevCommands.

Стандартні процеси

За замовчуванням команда запускає чотири процеси:

  • server: php artisan serve --host=localhost
  • queue: php artisan queue:listen --tries=1 --timeout=0
  • logs: php artisan pail --timeout=0
  • vite: npm run dev

Процес Pail реєструється лише за наявності функції pcntl_fork, тому користувачі Windows отримують три інші процеси. Процес vite автоматично визначає менеджер пакетів за lockfile у проєкті (npm, pnpm, Yarn або Bun), тому в pnpm-проєкті він запустить pnpm run dev без додаткових налаштувань.

Під капотом команда все ще використовує concurrently, а з версії 13.18 передає прапорець --kill-others-on-fail. Це означає, що збій одного процесу зупиняє всі інші, замість того щоб залишати напівробочий стек.

Реєстрація власних процесів

Стандартні налаштування підходять для нового проєкту, але більшість додатків швидко виходять за їхні межі. Розгляньмо додаток, який використовує Horizon замість queue:listen, транслює події через Reverb, приймає Stripe-вебхуки локально через Stripe CLI та перевіряє типи TypeScript у режимі watch.

Все це можна зареєструвати в методі boot вашого AppServiceProvider:

namespace App\Providers;

use Illuminate\Foundation\DevCommands;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function boot(): void
    {
        if (! $this->app->environment('local')) {
            return;
        }

        DevCommands::artisan('horizon', 'queue');
        DevCommands::artisan('reverb:start --debug', 'reverb')->purple();
        DevCommands::register(
            'stripe listen --forward-to '.config('app.url').'/stripe/webhook',
            'stripe'
        )->orange();
        DevCommands::nodeExec('tsc --noEmit --watch --preserveWatchOutput', 'types')->yellow();
    }
}

Методи реєстрації

Для реєстрації процесів доступні чотири методи:

  • artisan(): додає префікс php artisan до команди
  • node(): додає префікс команди запуску виявленого менеджера пакетів
  • nodeExec(): використовує команду exec (npx та аналоги)
  • register(): приймає сирий shell-команду для будь-чого іншого, як Stripe CLI вище

Другий аргумент - це ім'я процесу, що відображається в терміналі. Якщо його опустити, ім'ям стає перше слово команди (horizon, reverb:start, stripe).

Заміна стандартних процесів

Ім'я є ідентифікатором процесу, тому повторне використання імені дозволяє замінити або переналаштувати стандартний процес. У прикладі вище реєстрація процесу з іменем queue замінює стандартний queue:listen воркер на Horizon.

Порядок реєстрації не має значення. Команди, зареєстровані у вашому додатку, завжди мають перевагу над стандартними від фреймворку, а обидва типи мають перевагу над командами з vendor. Це означає, що встановлений пакет не може непомітно перехопити процес, який ви визначили. Пакети надають метод, який ви викликаєте самостійно, замість автоматичного підключення під час виявлення.

Налаштування кольорів

Кольори необов'язкові. Кожен процес автоматично отримує окремий колір, і ви використовуєте методи blue(), purple(), pink(), orange(), green(), yellow() або color('#ff6347') лише коли хочете, щоб конкретний процес виділявся.

Перегляд та фільтрація списку

Щоб побачити зареєстровані процеси без їх запуску, виконайте php artisan dev:list (додано в версії 13.17). Команда виводить кожен процес, його команду та файл із номером рядка, де його зареєстровано - корисно, коли інструкції пакета додали щось, про що ви забули.

Ви також можете обмежити список без видалення реєстрацій:

// Запустити лише server та vite...
DevCommands::only('server', 'vite');

// Запустити все, крім queue воркера...
DevCommands::except('queue');

Обидва методи є фільтрами, що застосовуються під час виконання, тому процес, виключений через except(), все ще відображається у вашому provider і може бути повернутий видаленням одного рядка.

Автор та документація

Команду dev додав Joe Tannenbaum у Pull Request #60412. Повні деталі доступні в офіційній документації Artisan для Laravel 13.x.

2

Читати в документації

Коментарі

Увійдіть, щоб залишити коментар

Будьте першим, хто залишить коментар!

Читайте також

Filament v5.10.0
Новини 12 жовтня 2026

Filament v5.10.0: сітка в rich editor, скелетони таблиць і десятки виправлень

Вийшов Filament v5.10.0: елементи керування сіткою в rich editor, допоміжний контент для віджетів-графіків, скелетони завантаження таблиць, submitOnCompletion() для OneTimeCodeInput та багато виправлень авторизації, доступності й стану.

22
Laravel AI SDK на практиці
Новини 09 жовтня 2026

Laravel AI SDK на практиці: агент, що стоїть за There There

Фрік Ван дер Гертен розповідає, як у Spatie побудували AI-шар хелпдеска There There на Laravel AI SDK: клас агента, інструменти з типізованою JSON-схемою та делегування роботи звичайним domain-діям.

18

Вакансії за темою

GGLUXOUTLET
18 днів тому

Senior+/Tech Lead Full-Stack WordPress Developer / Code Architect

Досвідчений Senior+/Tech Lead Full-Stack WordPress розробник для проєктування та розробки високонавантажених e-commerce рішень. Потрібні глибокі знання WordPress Core, WooCommerce, PHP 8.1+ з SOLID/ООП, React/Next.js для фронтенду, Python для автоматизації, DevOps (VPS, Docker, CI/CD) та AI-інтеграцій. Роль включає архітектуру, код-рев'ю, менторство і комунікацію з бізнесом. Мінімум 7 років досвіду, з них 3+ на WordPress/WooCommerce у високонавантажених проєктах.

Z Global E-Commerce
22 дні тому

Full-Stack Developer (PHP/Laravel + Vue 3)

Full-Stack розробник з глибоким досвідом бекенду. Розробляєте масштабовані веб-платформи з комплексною бізнес-логікою, працюєте з PHP/Laravel, SQL, Vue 3/TypeScript. Основні вимоги: досвід з Laravel, Eloquent, проектування API, оптимізація баз даних (включно з мільйонами записів), фронтенд на Vue 3 з Composition API, TypeScript. Цінується розуміння архітектури, продуктивності й довгострокової підтримуваності коду.

Wooden Sword
23 дні тому

Senior PHP Developer (Game Backend)

Розробник backend для мобільної RPG з високим навантаженням. Основний стек: PHP Laravel API та TypeScript Nakama Game Server. Відповідальність за повний цикл розробки функцій — від логіки до тестування, code review, оптимізації та документації. Вимоги: 5+ років backend-досвіду, бездоганне знання Laravel/PHP, сильні навички TypeScript, PostgreSQL та асинхронного програмування.

Пакети за темою

Laravel Prompts

laravel/prompts

Гарні інтерактивні поля для консольних команд: запити, паролі, вибір зі списку, автодоповнення і прогрес-бари з валідацією. Використовується самим Artisan і доступне у ваших командах.

721 v0.3.23 7

Collision

nunomaduro/collision

Читабельні повідомлення про помилки в консолі: акуратний стек-трейс із підсвіченим кодом замість стіни тексту. Входить у стандартну поставку Laravel і працює разом із Pest та PHPUnit.

4,657 v8.9.5 2