W pierwszej połowie miesiąca, a dokładniej 8. lutego, miała miejsce premiera najnowszej wersji Laravel 9.0. Co ciekawe, wypuszczenie „dziewiątki” było początkowo planowane na wrzesień 2021, następnie na styczeń 2022, by finalnie ujrzeć światło dzienne w drugi wtorek lutego 2022 ?

Pozwoliliśmy sobie przygotować zestawienie dziewięciu najciekawszych – naszym zdaniem – nowych funkcjonalności.

  • Ulepszenia funkcji Accessor i Mutator – Accessor to funkcja, która zwraca zmienną zawierającą wartość z bazy. Przy okazji może ją jakoś przekształcić, np. obciąć stringa, dodać wartość etc. Mutator to funkcja działająca w drugą stronę, przypisuje wartość do zmiennej obiektu z bazy. I tu też można ją przekształcić. Nowość polega na tym, że teraz zamiast dwóch osobnych funkcji, definiujemy klasę Attribute, a w niej funkcje get i set (albo same get lub set) – mogą one być bardzo krótkie i wygodne dzięki nowości PHP 8 – funkcji strzałkowej.
  • Eloquent został rozbudowany o obsługę indeksów i wyszukiwań pełnotekstowych MySQL.
  • Zmiany w szablonach Blade – od teraz można prosto i szybko wygenerować ciąg HTML do zmiennej albo zwrócić w kontrolerze. Co więcej, do szablonów Blade dodane zostały dyrektywy, które pozwalają łatwo wygenerować parametry checked i selected w inputach i selektorach, w zależności od tego, czy wartość zmiennej jest odpowiednia, np. <input type=”checkbox” checked />
  • Dla Bootstrapa 5 została dodana obsługa stronnicowania, dzięki czemu można np. łatwo zrobić tabelę ze stronnicowaniem.

  • Rozszerzona walidacja tablicy. W Laravelu mamy możliwość definiowania własnych walidatorów danych. Nowość polega na tym, że teraz można łatwo sprawdzać zagnieżdżone dane, np. jeśli przesyłamy tablicę z ID firm, to możemy osobno sprawdzić, czy posiadamy dostęp do danej firmy.
  • Rozbudowanie Ignition, czyli strony debuggera pojawiającego się gdy aplikacja się „wykrzaczy” w trybie developerskim.
  • Do komendy uruchamiającej testy (PHP Artisan Test) dodano nowy parametr – Coverage, który wyświetla stopień pokrycia kodu testami.
  • Rozbudowa Helperów. Laravel ma sporo wbudowanych Helperów, czyli przydatnych podręcznych klas zawierających proste, ale bardzo przydatne funkcje, pomagające w operowaniu na tablicach, stringach, URLach i nie tylko. Dzięki temu nie trzeba ich pisać samedzielnie. Nowość polega na rozbudowie Helpera/klasy Str.
  • Rozwiązanie problemu z kolizjami. Do tej pory zdarzało się, że występowały kolizje, tj. jeśli dwie migracje miały takie same nazwy klas, to następował konflikt – nawet jeśli modyfikowały co innego. Teraz można je uruchamiać anonimowo, czyli powyższego problemu nie będzie. Co więcej, takie uruchamianie będzie domyślne.

 

Interesujących zmian w Laravel’u jest znacznie więcej, jednak nie chcemy zdradzać Wam wszystkiego ? Przy okazji przypominamy, że już za rok (albo dopiero) Laravel planuje wypuszczenie wersji 10 – jesteśmy niezmiernie ciekawi, jakie modyfikacje zostaną wprowadzone w 2023 roku!