Цього тижня команда Laravel випустила версію 12.38.0, яка включає нові функції, зокрема тестові трейти WithCachedRoutes та WithCachedConfig, новий запит для команди model:show та інше.
Люк Кузміш запропонував трейти WithCachedRoutes, які дозволяють один раз створити маршрути і зберігати їх у пам’яті. Це економить час, оскільки маршрути генеруються лише один раз для всіх тестів у вашій тестовій сукупності:
use App\Http\Controllers\UserController;
use Illuminate\Foundation\Testing\WithCachedRoutes;
use Tests\TestCase;
// Pest
pest()->use(WithCachedRoutes::class);
test('basic example', function () {
$this->get(action([UserController::class, 'index']));
// ...
});
// PHPUnit
class BasicTest extends TestCase
{
use WithCachedRoutes;
/**
* Основний функціональний тест.
*/
public function test_basic_example(): void
{
$response = $this->get(action([UserController::class, 'index']));
// ...
}
}
Деталі можна знайти у Pull Request #57623.
Люк Кузміш також запровадив трейти WithCachedConfig, що створює налаштування вашого додатка один раз і повторно використовує їх у всіх тестах:
use Illuminate\Foundation\Testing\WithCachedConfig;
use Tests\TestCase;
// Pest
pest()->use(WithCachedConfig::class);
test('modifies config', function () {
config(['services.postmark.key' => 'xyz']);
expect(config('services.postmark.key'))->toBe('xyz');
});
test('uses default config', function () {
expect(config('services.postmark.key'))->not->toBe('xyz');
});
// PHPUnit
class ConfigTest extends TestCase
{
use WithCachedConfig;
/**
* Тест, що модифікує налаштування.
*/
public function test_modifies_config(): void
{
$this->assertEquals('xyz', config('services.postmark.key'));
}
/**
* Тест, що не змінює налаштування.
*/
public function test_uses_default_config(): void
{
$this->assertNotEquals('xyz', config('services.postmark.key'));
}
}
Деталі за посиланням: Pull Request #57663.
Разін Шайх оновив команду model:show, щоб вона запитувала введення, якщо команду запущено без аргументів. Ось приклади до і після:
Деталі у Pull Request #57671.
Повний список нових функцій і оновлень ви можете переглянути нижче, а також різницю між версіями 12.37.0 та 12.38.0 на GitHub. Нотатки про реліз взято з журналу змін:
configurationIsCached() від @cosmastech у Pull Request #57665WithCachedRoutes від @cosmastech у Pull Request #57623Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!
Laravel 13 вийде в березні 2026 року й вимагатиме мінімум PHP 8.3. Хочете дізнатися, як PHP‑атрибути для моделей, нові налаштування черг і метод Cache::touch() вплинуть на вашу розробку?
Laravel Livewire випустив нову версію 3.6, яка приносить з собою цікаві HTML-директиви для управління видимістю DOM-елементів і JavaScript-діями. Досліджуйте нові можливості Livewire, що допоможуть вам створити ще більш інтерактивні користувацькі інтерфейси!