zamknięcie menu

Aplikacje webowe Laravel Co nowego pojawiło się w Laravel 9?

Autor: Dawid

Laravel jest jednym z najbardziej popularnych frameworków PHP. Z jego pomocą możemy tworzyć wydajne i szybkie aplikacje webowe, takie jak systemy CRM, aplikacje e-learningowe, systemy zarządzania pracownikami oraz wiele więcej.

grafika Co nowego pojawiło się w Laravel 9?

Twórcy Laravela zaprezentowali ostatnio najnowszą wersję tego frameworku – Laravel 9.

Wprowadziła ona wiele mniejszych i większych zmian. Poniżej znajdziesz kilka z nich.

Minimalna wersja PHP to 8.0

Zmiana minimalnej wersji PHP jest podyktowana aktualizacją komponentów Symfony z wersji 5 do wersji 6, która wymaga PHP 8.0.

Zastąpienie Swift Mailer przez Symfony Mailer

Biblioteka Swift Mailer po wielu latach przestała być utrzymywana, dlatego twórcy Laravela zdecydowali się zmienić ją na Symfony Mailer.

Przebudowanie strony debugowania

Strona debugowania Ignition stworzona przez Spatie została przebudowana od podstaw.

Strona debugowania – Laravel 8
Strona debugowania – Laravel 9

Usprawnienie wyświetlania listy endpointów w CLI

Po wpisaniu komendy php artisan route:list zobaczymy nowy sposób wyświetlania listy endpointów. Został on uproszczony oraz dodano kolory, dzięki czemu stał się on czytelniejszy.

Lista endpointów – Laravel 8
Lista endpointów – Laravel 9

Usprawnione akcesory / mutatory 

W poprzednich wersjach Laravela jedynym sposobem tworzenia akcesorów i mutatorów było dodanie prefixu, tak jak w przykładzie poniżej:

public function getNameAttribute($value)
{
    return strtoupper($value);
}
 
public function setNameAttribute($value)
{
    $this->attributes['name'] = $value;
}

Nowa wersja Laravela umożliwia stworzenia akcesora i mutatora za pomocą jednej funkcji:

use Illuminate\Database\Eloquent\Casts\Attribute;
 
public function name(): Attribute
{
    return new Attribute(
        get: fn ($value) => strtoupper($value),
        set: fn ($value) => $value,
    );
}

Indeksy pełnotekstowe (ang. FULLTEXT index)

Nowe funkcjonalności zostały dodane do  interfejsu bazy danych.

Tworząc kolumnę możemy utworzyć indeks tekstowy:

$table->text('name')->fullText();

Dodano także nową metodę whereFullText oraz orWhereFullText:

$users = DB::table('users')
           ->whereFullText('name', 'John')
           ->get();

Pokrycie kodu testami

Komenda artisan test  otrzymała nową opcję –coverage, która umożliwia wyświetlenie pokrycia kodu testami

Wynik działania komendy php artisan test –coverage

Dyrektywy @checked i @selected w Blade

W silniku szablonów Blade w Laravel 9 dodano dyrektywy @checked i @selected, które ułatwiają obsługę pól w formularzach.

<input type="checkbox"
        name="active"
        value="active"
        @checked(old('active', $user->active)) />
<select name="version">
    @foreach ($product->versions as $version)
        <option value="{{ $version }}" @selected(old('version') == $version)>
            {{ $version }}
        </option>
    @endforeach
</select>
zdjęcie kontaktu