Цього тижня команда 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, та які переваги це може принести у вашому проєкті!
Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю
Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом