Команда Laravel випустила версію 12.2.0, яка включає новий метод тестування `ddBody()`, підтримку єдиної моделі через `HasManyThrough`, а також можливості для збільшення і зменшення контекстуальних ключів та багато іншого
Окрім випуску 12.2.0, Laravel Installer тепер підтримує стартер-кити спільноти. Цю функцію додав Тоні Мессіас, що спрощує установку стартер-китів за допомогою знайомої команди laravel new
Тепер, створюючи новий проект з одним з офіційних Laravel Starter Kits, команда laravel new підтримує використання стартер-киту спільноти:
laravel new --using statamic/statamic my-statamic-app
laravel new --using tnylea/filamentapp my-filament-app
Щоб дізнатися, які стартер-кити спільноти доступні, Тоні Ліа створив tnylea/laravel-new, де є список проектів і/або стартер-китів, які можна встановити за допомогою Laravel Installer. Важливо провести власне дослідження та ознайомитися з їхнім вихідним кодом
Сем Карре додав метод ddBody() до класу TestResponse, що дозволяє зручно виводити вміст відповіді:
// У функціональному тесті...
$response = $this->get('/example');
$response->ddBody(); // Виводить увесь вміст
// Вивести конкретний JSON ключ
$response->ddBody('title'); // Використовує $this->ddJson('title') під капотом
Калеб Уайт додав підтримку CanBeOneOfMany до зв’язку HasOneThrough, що дозволяє отримувати єдину модель з більшого зв'язку HasManyThrough:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasOneThrough;
class Application extends Model
{
/**
* Отримати останнє розгортання для програми.
*/
public function latestDeployment(): HasOneThrough
{
return $this->deployments()->one()->latestOfMany();
}
}
@mattmcdev додав методи increment та decrement до Context, що спрощує облік лічильника (наприклад, кількість виконаних запитів):
Context::increment('uploads'); // 1
Context::increment('uploads'); // 2
Context::increment('uploads', 5); // 7
Повний список нових функцій та оновлень можна знайти нижче, а також різницю між 12.1.0 та 12.2.0 на GitHub. Нижче наведені примітки щодо випуску безпосередньо з змін:
whereNotMorphedTo() від @owenvoke в https://github.com/laravel/framework/pull/54902checkTimeout від @mattmcdev в https://github.com/laravel/framework/pull/54912EnumeratesValues::ensure() від @axlon в https://github.com/laravel/framework/pull/54919Enum є чутливою до регістру, додавши новий тест від @alikhosravidev в https://github.com/laravel/framework/pull/54922ddBody до TestResponse для виведення різних відповідей від @Sammyjo20 в https://github.com/laravel/framework/pull/54933RedisCluster зі стисненням або серіалізацією" від @rzv-me в https://github.com/laravel/framework/pull/54935CanBeOneOfMany до HasOneThrough від @calebdw в https://github.com/laravel/framework/pull/54759ddBody у TestResponse від @Sammyjo20 в https://github.com/laravel/framework/pull/54937setUp та tearDown у тестах від @naopusyu в https://github.com/laravel/framework/pull/54950assertOnlyInvalid від @parth391 в https://github.com/laravel/framework/pull/54941migrate:install викликано, а таблиця існує, від @joe-tito в https://github.com/laravel/framework/pull/54938callOnce у Seeder, щоб він коректно обробляв масиви від @lbovit в https://github.com/laravel/framework/pull/54985after у `LazyCollection` від @mohammadrasoulasghari в https://github.com/laravel/framework/pull/54978increment та decrement до Context від @mattmcdev в https://github.com/laravel/framework/pull/54976