Команда 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