Кешування маршрутів та конфігурацій під час тестування в Laravel 12.38

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 14 листопада, 2025
Цього тижня команда Laravel випустила версію 12.38.0, яка представила кілька цікавих нововведень, зокрема тестові трейти `WithCachedRoutes` і `WithCachedConfig`. Які ще зміни чекають на вас у цій версії? Читайте далі, щоб дізнатися про всі деталі та нововведення

Цього тижня команда Laravel випустила версію 12.38.0, яка включає нові функції, зокрема тестові трейти WithCachedRoutes та WithCachedConfig, новий запит для команди model:show та інше.

# Тестові трейти WithCachedRoutes

Люк Кузміш запропонував трейти 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

Люк Кузміш також запровадив трейти 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 тепер запитує введення

Разін Шайх оновив команду model:show, щоб вона запитувала введення, якщо команду запущено без аргументів. Ось приклади до і після:

До Laravel 12.38
До Laravel 12.38
Починаючи з Laravel 12.38+
Починаючи з Laravel 12.38+

Деталі у Pull Request #57671.

# Нотатки про реліз

Повний список нових функцій і оновлень ви можете переглянути нижче, а також різницю між версіями 12.37.0 та 12.38.0 на GitHub. Нотатки про реліз взято з журналу змін:

# v12.38.0

Популярні

Logomark Logotype

Створення CLI-додатка за допомогою Laravel та Docker

Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!

Logomark Logotype

Перетворення даних у типобезпечні DTO за допомогою пакету Data Model

Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю

Logomark Logotype

Використання повнотекстового пошуку в Laravel

Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом