Laravel 5.8 | Lista Zmian oraz Nowości
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 , 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 .
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 !
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 !
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 !
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 !
Wszystkiego dobrego!