Laravel 8.65 wydany
Zespół odpowiedzialny za rozwój Laravela wydał wersję oznaczoną numerem 8.65 z możliwością generowania testów podczas wykonywania poleceń z grupy ’make’, pobierania podzbioru danych w formie kolekcji. Oczywiście wprowadzonych zmian jest ciut więcej.
Metoda String Headline
Steve Bauman wprowadził metodę ’headline()’ do helpera ’Str’ dostępnego w naszym frameworku oraz ’Stringable’, który konwertuje ciąg do ’Studly Words’:
// Displays: "Voice Recording Stored"
echo Str::headline(
class_basename(\App\Events\VoiceRecordingStored::class)
);
// Displays: "Using Laravel With Redis"
echo Str::studlyWords("using-laravel-with-redis");
Callback do Gate Policy
Lennart Carstens-Behrens umożliwił przekazywanie wywołań zwrotnych do reguł Gate
Gate::inspect([PostPolicy::class, 'update'], $post)->authorize();
Gate::inspect(InvokablePolicy::class)->authorize();
Gate::check([PostPolicy:class, 'update'], $post);
Gate::any([PostPolicy::class, ['update', 'edit']], $post);
Więcej informacji na ten temat znajdziecie tutaj: Pull Request #39185.
Konfiguracja długości życia dla Cookie „Zapamiętaj mnie”
Od teraz dzięki James Freeman możemy skonfigurować długość życia dla ciasteczka związanego z opcją „zapamiętaj mnie”. Plik konfiguracyjny znajdziemy w lokalizacji ’config/auth.php
’
// config/auth.php
return [
'remember' => now()->addDays(7)->diffInMinutes(),
];
Domyślny okres wygaśnięcia to pięć lat, który będzie nadal obowiązywać, jeśli nie ustawisz wartości konfiguracji.
Generowanie testów z make
Do poleceń ’make’ została dodana możliwość użycia dwóch flag ’–test’ oraz ’–pest’, które odpowiedzialne są za generowanie testu.
# Create a unit test file
php artisan make:model Product --test
# Create a pest file
php artisan make:model Product --pest
Poniżej zamieszczamy listę poleceń, które otrzymały powyższe flagi:
make:command
make:job
make:listener
make:mail
make:model
make:notification
make:controller
make:middleware
Podzbiór danych z kolekcji żądań
Iraldo Arévalo Delfín przyczynił się do uzyskania podzbioru danych wejściowych z funkcji ’collect()’:
$request = Request::create('/', 'GET', [
'users' => [1, 2, 3],
'roles' => [4, 5, 6],
'email' => 'test@example.com'
]);
// returns [4, 5, 6]
$request->collect(['roles'])->all();
Walidacja różnych formatów dla dat
Steve Bauman przyczynił się do przekazywania wielu formatów dat do reguły walidacji date_format. Reguła sprawdza, czy dane wejściowe muszą być zgodne z jednym z możliwych formatów:
public function rules()
{
return [
'date' => 'date_format:Y-m-d,m-d',
];
}
Metoda „aktualizacji z” PostgreSQL
Dries Vints wprowadził metodę ’updateFrom’ dla PostgreSQL:
/*
update "users" set "email" = ?, "name" = ? from "orders"
where "users"."id" = ? and "users"."id" = "orders"."user_id"
*/
$builder
->from('users')
->join('orders', 'users.id', '=', 'orders.user_id')
->where('users.id', '=', 1)
->updateFrom(['email' => 'foo', 'name' => 'bar']);
Aby uzyskać więcej informacji, zachęcam do zapoznania się z: Pull Request #39151.
Podsumowanie
Możesz zobaczyć pełną listę nowych funkcji i aktualizacji poniżej oraz różnicę między 8.64.0 i 8.65.0 na GitHub.
Dodaj komentarz