Команда Laravel випустила версію 12.2.0, яка включає новий метод тестування `ddBody()`, підтримку єдиної моделі через `HasManyThrough`, а також можливості для збільшення і зменшення контекстуальних ключів та багато іншого
Окрім випуску 12.2.0, Laravel Installer тепер підтримує стартер-кити спільноти. Цю функцію додав Тоні Мессіас, що спрощує установку стартер-китів за допомогою знайомої команди laravel new
# Підтримка стартер-китів спільноти в `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
Сем Карре додав метод ddBody() до класу TestResponse, що дозволяє зручно виводити вміст відповіді:
// У функціональному тесті...
$response = $this->get('/example');
$response->ddBody(); // Виводить увесь вміст
// Вивести конкретний JSON ключ
$response->ddBody('title'); // Використовує $this->ddJson('title') під капотом
# Додавання підтримки CanBeOneOfMany до HasOneThrough
Калеб Уайт додав підтримку 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. Нижче наведені примітки щодо випуску безпосередньо з змін:
# v12.2.0
- Додано дати до дозволених типів PHPDoc для `Builder::having()` від @miken32 в https://github.com/laravel/framework/pull/54899
- [11.x] Виправлено подвійну негативу в запиті
whereNotMorphedTo()від @owenvoke в https://github.com/laravel/framework/pull/54902 - Додано тест для `Arr::partition` від @liamduckett в https://github.com/laravel/framework/pull/54913
- [11.x] Експоновано метод перевірки часу
checkTimeoutвід @mattmcdev в https://github.com/laravel/framework/pull/54912 - [12.x] Компіляція для контракту валідації від @peterfox в https://github.com/laravel/framework/pull/54882
- [11.x] Відновлено помилкове зміна документації для
EnumeratesValues::ensure()від @axlon в https://github.com/laravel/framework/pull/54919 - Забезпечено, щоб `ValidationEmailRuleTest` пропускав тести, що вимагають відсутність розширення intl, якщо воно недоступне від @alikhosravidev в https://github.com/laravel/framework/pull/54918
- ✅ Підтверджено, що валідація
Enumє чутливою до регістру, додавши новий тест від @alikhosravidev в https://github.com/laravel/framework/pull/54922 - [12.x] Функція: Сортування колекції без збереження ключів від @liamduckett в https://github.com/laravel/framework/pull/54916
- [12.x] Додано покриття тестами для методу `Uri::withQueryIfMissing` від @mohammadrasoulasghari в https://github.com/laravel/framework/pull/54923
- Виправлено проблему з використанням `RedisCluster` із стисненням або серіалізацією від @rzv-me в https://github.com/laravel/framework/pull/54934
- [12.x] Додано покриття тестами для методу `Str::replaceMatches` від @mohammadrasoulasghari в https://github.com/laravel/framework/pull/54930
- [12.x] Типи: Сортування колекції без збереження ключів від @liamduckett в https://github.com/laravel/framework/pull/54924
- [12.x] Додано метод
ddBodyдоTestResponseдля виведення різних відповідей від @Sammyjo20 в https://github.com/laravel/framework/pull/54933 - [11.x] Повернено "Виправлено проблему з використанням
RedisClusterзі стисненням або серіалізацією" від @rzv-me в https://github.com/laravel/framework/pull/54935 - [12.x] feat: додано підтримку
CanBeOneOfManyдоHasOneThroughвід @calebdw в https://github.com/laravel/framework/pull/54759 - [12.x] Гаряча виправка - додано перевірку функції до
ddBodyуTestResponseвід @Sammyjo20 в https://github.com/laravel/framework/pull/54937 - [12.x] Рефакторинг: видалення непотрібних змінних у методах класу Str від @mohammadrasoulasghari в https://github.com/laravel/framework/pull/54963
- Додано тести для методу `Str::pluralPascal` від @mohammadrasoulasghari в https://github.com/laravel/framework/pull/54957
- [12.x] Виправлено видимість методів
setUpтаtearDownу тестах від @naopusyu в https://github.com/laravel/framework/pull/54950 - [12.x] Поліпшення тестування від @crynobone в https://github.com/laravel/framework/pull/54944
- Виправлено відсутнє повернення в
assertOnlyInvalidвід @parth391 в https://github.com/laravel/framework/pull/54941 - Обробка випадку, коли команду
migrate:installвикликано, а таблиця існує, від @joe-tito в https://github.com/laravel/framework/pull/54938 - [11.x] Виправлено
callOnceу Seeder, щоб він коректно обробляв масиви від @lbovit в https://github.com/laravel/framework/pull/54985 - Виправлено помилку в написанні "exceptoin" на "exception" від @hvlucas в https://github.com/laravel/framework/pull/54979
- [12.x] Додано тест для методу
afterу `LazyCollection` від @mohammadrasoulasghari в https://github.com/laravel/framework/pull/54978 - [12.x] Додано методи
incrementтаdecrementдоContextвід @mattmcdev в https://github.com/laravel/framework/pull/54976 - Забезпечено, щоб `ExcludeIf` правильно відхиляло нульове значення як недійсну умову від @alikhosravidev в https://github.com/laravel/framework/pull/54973
- [12.x] Застосування правила Pint "no_spaces_around_offset" від @browner12 в https://github.com/laravel/framework/pull/54970
- [12.x] Застосування правила Pint "single_line_comment_style" від @browner12 в https://github.com/laravel/framework/pull/54969
- [12.x] Не використовувати мікс формату нової строки та рядкового формату від @browner12 в https://github.com/laravel/framework/pull/54967
- [12.x] Використовувати одиничний відступ для багаторазових тернарних виразів від @browner12 в https://github.com/laravel/framework/pull/54971