---
title: "Команда artisan dev у Laravel 13.16.0"
url: https://laravelukraine.com/blog/komanda-artisan-dev-u-laravel-13160
author: "Олексій Бабінцев"
date: 2026-06-18
source: https://laravel-news.com/laravel-13-16-0?utm_medium=feed&utm_source=feedpress.me&utm_campaign=Feed%3A+laravelnews
---

# Команда artisan dev у Laravel 13.16.0

Команда Laravel випустила версію 13.16.0 із новою командою `php artisan dev` для запуску процесів розробки, хелпером для роботи з enum у запитах, методом `withCookies()` для всіх типів відповідей та драйвером режиму обслуговування на основі масивів для паралельного тестування.

## Команда artisan dev

Головною новинкою релізу стала команда `php artisan dev`, яка одночасно запускає процеси розробки: сервер, обробник черг, відстеження логів та Vite. За замовчуванням її поведінка відповідає існуючому скрипту `composer dev`, але конфігурація переміщується з `composer.json` безпосередньо в код додатка.

Команди реєструються через клас `DevCommands`, зазвичай із сервіс-провайдера. Можна додавати як Artisan-команди, так і довільні shell-команди:

```php
use Illuminate\Foundation\Console\DevCommands;
DevCommands::artisan('reverb:start');
DevCommands::register('stripe listen --forward-to ' . config('app.url'));
```

Необов'язковий другий аргумент задає ім'я процесу; якщо його не вказано, використовується перший сегмент до першого пробілу. Також можна призначити колір для кожного процесу:

```php
DevCommands::artisan('reverb:start', 'reverb')->orange();
DevCommands::register('stripe listen --forward-to ' . config('app.url'))->green();
```

`DevCommands` запобігає автоматичній реєстрації команд пакетами з директорії `vendor`. Пакет все ще може надавати хелпер для реєстрації команд з вашого власного коду. PR також додає хелпер `NodePackageManager`, який визначає менеджер пакетів за наявними lockfile-файлами (npm, yarn, pnpm або bun), щоб загальна команда виконувалась правильним інструментом.

*Примітка: рекомендується оновитися до v13.16.1, яка містить виправлення для реєстрації команди `artisan dev`.*

## Метод whenFilledEnum() для запитів

Трейт `InteractsWithData` отримав метод `whenFilledEnum()`, який перетворює значення запиту на backed enum перед викликом callback-функції. Раніше це вимагало виклику `whenFilled()`, потім `tryFrom()` та ручної перевірки на null:

```php
$request->whenFilledEnum('status', Status::class, function (Status $status) use ($query): void {
    $query->where('status', $status);
});
```

Callback виконується лише коли ключ заповнений, вказаний клас є backed enum, а значення успішно перетворюється на валідний case через `tryFrom()`. Невалідні значення пропускаються без викидання помилок. Опціональний другий callback виконується, коли основний не спрацював:

```php
$request->whenFilledEnum('status', Status::class, function (Status $status) use ($query): void {
    $query->where('status', $status);
}, function () use ($query): void {
    $query->where('status', Status::Active);
});
```

## Метод withCookies() для всіх відповідей

Метод `withCookies()` перемістився з `RedirectResponse` до `ResponseTrait`, тому тепер можна додавати кілька cookies до будь-якого типу відповіді, включно з `JsonResponse` та стандартними відповідями, одним викликом замість ланцюжка `withCookie()`:

```php
return response()->json($data)->withCookies([$cookieA, $cookieB, $cookieC]);
```

Зміна є адитивною та не порушує зворотну сумісність.

## Драйвер array для режиму обслуговування

Новий драйвер режиму обслуговування на основі масивів доповнює існуючі file та cache драйвери. Він призначений для паралельного тестування, де файловий драйвер та мокінг фасаду `Cache` можуть заважати тестам, які викликають `php artisan up` та `down`.

## Enum у методі broadcastAs()

Події broadcast тепер можуть повертати enum з методу `broadcastAs()` для імені події. У поєднанні з типізованим генератором SDK це забезпечує консистентність назв подій як на стороні відправника, так і отримувача, подібно до того, як атрибут `#[Queue()]` вже підтримує enum.

## JSON Schema anyOf та безпечна десеріалізація

Компонент `JsonSchema` отримав підтримку `anyOf`, а десеріалізатор тепер захищений від необмеженого розширення `$ref` для запобігання нескінченній рекурсії.

## Інші виправлення та покращення

Версія 13.16.0 також включає:

- Виправлено екранування shell-команд при запуску запланованих команд від імені іншого користувача
- Дозволено `RouteParameter` використовувати ім'я параметра з атрибута
- Виправлено `Batchable::batching` для завершених батчів
- Додано підтримку атрибутів черг у трейтах
- Посилено серіалізацію запитів HTTP-клієнта та фейкових відповідей
- Покращено типи повернення для скоупів моделей, callback-функцій з'єднань та хелперів передачі callback-функцій
