Laravel 8.65 wydany

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.

Udostępnij ten post

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *