Devloger

Laravel 5.8 | Nowości oraz Zmiany

Laravel 5.8 | Lista Zmian oraz Nowości

Obrazek - Laravel 5.8

Jest i kolejna wersja frameworka Laravel. Wersja 5.8 została oficjalnie wypuszczona dnia 26.02.2019. A na cóż nam ona? Co w niej nowego? Co się zmieniło? No właśnie Emotikon uśmiechniętej buźki, dużo!...

PHP Dotenv

Laravel w wersji 5.8 jest w pełni zintegrowany z biblioteką PHP Dotenv 3.0. A co nam to daje?

  • Większą elastyczność w kwestii czytania oraz modyfikowania
  • Pierwszorzędne wsparcie dla zmiennych definiowanych na wielu liniach
  • Koniec z ucinaniem wartości
  • Akceptacja wielu ścieżek zamiast możliwej tylko jednej
  • Silniejsza walidacja nazw zmiennych

Carbon v2

Wersja 5.8 pozwala nam na użycie biblioteki Carbon w wersji v1 oraz v2, zależnie od preferencji. Włączając w to również funkcjonalność „CarbonImmutabl”e a nawet uczynienie tego funkcją domyślną. Zmieniła się trochę „lokalizacja”, która oferuje lepsze wsparcie niż wersja v1.

Cache TTL

Wrzucanie wartości do funkcji keszowania opiera się teraz na sekundach a nie minutach. Może mieć to od średniego do dużego wpływu na różne aplikacje i projekty. Ale tak czy siak jest to naprawdę świetny ficzer. Dodatkowo można wrzucić do metod tych instancje klas Carbon oraz \DateInterval zamiast liczby.

Zdeprecjonowane helpery Stringów i Tablic

Wciąż mamy odpowiedniki klas. Nie ma co płakać, że zostały one wycofane. Nie oferowały za dużo wartości. Jednakże planowane jest umieszczenie ich w dedykowanym, osobnym pakiecie. Więc wciąż będzie możliwość ich używania, jeśli tego właśnie dusza pragnie Emotikon uśmiechniętej buźki.

Automatyczna rezolucja klas Policies

Od Laravela 5.8 tak długo jak klasy Policies oraz Modele są w lokalizacjach standardowych, zgodnych z konwencją, nie trzeba będzie rejestrować ich w klasie AuthServiceProvider. Wszystko będzie się działo automatycznie! A co jeśli ścieżki nie są zgodne z przyjętą, domyślną konwencją? Wówczas jest opcja ręcznej konfiguracji ścieżki.

Gate::guessPolicyNamesUsing(function ($class) {

    // Do stuff

    return $policyClass;

});

Relacja ORM’a HasOneTrough

Nasz ukochany ORM Eloquent dostarcza teraz wsparcia dla nowego typu relacji, a mianowicie hasOneTrough. Pozwala to nam, na zdefiniowanie przejścia. Możemy dostać się do modelu stojącego za jakimś modelem. Dla przykładu użytkownik ma konto a konto ma historię. Możemy z pozycji użytkownika dostać się od razu bezpośrednio do historii!

/**
 * Get the account history for the supplier.
 */
public function accountHistory()
{
    return $this->hasOneThrough(AccountHistory::class, Account::class);
}

Zgodność z PSR-16 – Cache

Laravel w wersji 5.8 jest teraz w pełni zgodny z standardem PSR-16 który dotyczy systemu keszowania.

Wiele strażników (Guards) autentykacji Broadcast’u

Teraz można zdefiniować wiele strażników autentykacyjnych Broadcast’u, nie tylko jednego Emotikon uśmiechniętej buźki!

Broadcast::channel('channel', function() {

    // ...

}, ['guards' => ['web', 'admin']])

SHA-256 Api Tokeny

Guard laravela “token” który należy do podstawowej autentykacji Api, wspiera teraz tokeny jako hasze SHA-256. Zwiększa to znacząco poziom bezpieczeństwa w stosunku do przechowywania tokenów w czystym tekście.

Ulepszona walidacja Email

Laravel 5.8 poprawia logikę związaną z walidacją adresów email poprzez adaptację pakietu egulias/email-validator stworzonego przez SwiftMailer.

Domyślna strefa czasowa dla Schedulera

Harmonogram zdarzeń we frameworku pozwala na zdefiniowanie strefy czasowej dla zaplanowanych zadań. Jednakże teraz możliwe jest definiowanie domyślnej strefy czasowej Emotikon uśmiechniętej buźki!

Eventy w modelach tabel pośrednich

Teraz wykorzystując pośrednie modele tabel możliwe jest wykorzystanie wszystkich eventów związanych z relacjami. Takie jak attach, detach, sync.

Ulepszenie wywołań komendy powłoki Artisan

Możliwe jest teraz przekazanie całej, dokładnej komendy w kodzie prosto do powłoki artisana. To jest coś ekstra Emotikon uśmiechniętej buźki!

Artisan::call('migrate:install --database=foo');

Zachowanie / Ochrona kluczy Eloquenta

Poprzez ustawienie właściwości “preserveKeys” w klasach resource modeli do wartości true, możliwe jest teraz zachowanie wartości kluczy. Nie zostaną one zresetowane. Jednak takie zachowanie nadal jest domyślne.

Metoda orWhere Eloquenta – wyższego rzędu

Eloquent posiada teraz nową metodę wyższego rzędu – orWhere. Pozwala ona na chainowanie warunków „or” bez tworzenia specjalnej funkcji callback.

$users = App\User::popular()->orWhere->active()->get();

Poprawa komendy Artisan Serve

Od wersji 5.8 możliwe jest serwowanie wielu aplikacji jednocześnie, ponieważ komenda ta skanować będzie teraz wolne porty! Poprzednio działało to tylko na porcie 8000.

Mapowanie plików Blade’a

Podczas kompilacji plików blade dodawane są teraz na samej górze komentarze wskazujące na ścieżkę do oryginalnego pliku.

DynamoDB jako silnik Cache oraz Sesji

Laravel w wersji 5.8 wprowadza DynamoDB. Jest to bezserwerowa noSQL’owa baza danych dostarczona przez Amazon Web Services. Ciekawy ficzer.

Wsparcie dla Phenstalk 4.0

Biblioteka kolejkowania Phenstalk w wersji 4.0 jest teraz oficjalnie wspierana przez Laravela. Warto więc zaktualizować ją do wersji 4.0.

Podsumowanie

Jest tego naprawdę dużo. Jedne ficzery mniej ważne i mniej fajne, inne bardziej znaczące i świetne. Jak dla mnie super aktualizacja, świetny update.

Wersja 5.8 wygląda naprawdę fajnie. Nie ma tutaj nic rewolucyjnego, jednak jest wiele naprawdę ciekawych i godnych zmian. Korzystajmy!

Warto jednak zajrzeć do dokumentacji Laravela 5.8 oraz artykułu związanego z migracją do nowej wersji.

Kończąc

A tymczasem ja tobie dziękuję mój drogi czytelniku za lekturę tego artykułu. Mam nadzieję, że był on dla ciebie jak najbardziej pomocny i na nim skorzystałeś.

Proszę zostaw po sobie jakiś komentarz, jeśli uważasz że warto - udostępnij Emotikon uśmiechniętej buźki!

Wszystkiego dobrego!

Krystian Bogucki

Podobał Ci się ten artykuł?

Jeśli tak, to zarejestruj się aby otrzymywać powiadomienia o nowych artykułach. Nie ujawnię nikomu Twojego adresu!