Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Події
Інше
Про нас
Новини 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

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

Коментарі

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

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

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

whereBinary()
Новини 28 серпня 2026

whereBinary(): регістрозалежні запити MySQL у Laravel

Laravel 13.27 додає новий метод whereBinary() для точного побайтового порівняння рядків у MySQL. Він вирішує проблему, коли стандартне collation utf8mb4_unicode_ci ігнорує регістр, акценти та пробіли при порівнянні токенів, slug-ів та інших критичних даних.

ToolSearch
Новини 27 серпня 2026

Laravel AI: завантаження інструментів на вимогу з ToolSearch

Laravel AI v0.11.0 додає механізм відкладеного завантаження інструментів агента через ToolSearch. Замість надсилання всіх тридцяти інструментів одразу, провайдер отримує лише пошуковий запис і завантажує повні визначення тільки тоді, коли модель вирішує їх використати.

2

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

VENCON
4 дні тому

Senior PHP-розробник

Senior PHP-розробник для fullstack проєкту на Yii2. Розробка бекенду на PHP/Yii2 та фронтенду на ванільному JavaScript, HTML5, PostCSS. Вимоги: впевнене володіння PHP і Yii2, JavaScript ES6+, OOP/SOLID, вміння верстати адаптив. Віддалена робота, гнучкий графік.

RemoDevs
11 днів тому

Senior PHP Fullstack Developer

Senior PHP Fullstack Developer для платіжної системи. Розробка на PHP 8.2 із Symfony, Vue.js 3, React та TypeScript. Відповідальність за завершення проектів у 6-тижневих циклах, code review, планування та наставництво команди. Робота в remote-команді розміром 1-4 осіб з підтримкою клієнтів і розвитком платформи для платежів.

IT Dream Service
20 днів тому

Full-Stack Developer (PHP Laravel + Vue 3)

Full-Stack розробник для внутрішної B2B-платформи управління задачами. Розробка backend на Laravel 10/11 та frontend на Vue 3 + Inertia.js, проектування MySQL, тестування (PHPUnit/Vitest), робота з дизайн-системою Tailwind. Вимога: 3+ років досвіду з Laravel та Vue 3, знання Inertia.js/SPA, MySQL, REST API, Git-флоу, SOLID.

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

Laravel Prompts

laravel/prompts

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

721 v0.3.23 4

Collision

nunomaduro/collision

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

4,657 v8.9.5 2