Novinky v Laravel 5.5 a 5.6

Nedávno vyšla verzia 5.5 najpopulárnejšieho PHP frameworku Laravel. Je to druhá LTS verzia, čo znamená, že bugfixy budeme mať najbližšie 2 roky a bezpečnostné fixy tak 3 roky. Pri ostatných verziách bugfixy bežne vychádzajú 6 mesiacov a bezpečnostné 1 rok. 

Čo je ale nové? Laravel 5.5 prichádza s mnohými vylepšeniami a novými funkcionalitami. V rámci článku vyzdvihneme 6 najvýznamnejších.

1. Whoops

Táto verzia prichádza s novým balíkom pre debugovanie chýb. K vylistovaniu stacku skriptov a metód, cez ktoré server prešiel, kým nastala chyba, poskytuje aj interaktívne, pre oči prívetivejšie rozhranie, pomocou ktorého sa dajú preklikať jednotlivé úryvky kódu. Preklikaním jednotlivých krokov stacku sa zobrazí stav aplikácie aj s odchytenými vstupnými parametrami jednotlivých metód. Poskytuje aj linky na vyhľadávanie vyskytnutej chyby priamo na stackoverflow alebo google.

2. migrate:fresh

Pribudol aj nový príkaz na prečistenie štruktúry developerskej databázy. Je to rýchlejšia alternatíva pre príkaz migrate:refresh, ktorý každú zmenu v databáze postupne vráti, až kým sa nedostane databáza do pôvodného stavu. Príkaz migrate:refresh zmaže celú databázu a jej štruktúru vytvorí nanovo.

3. Automatické rozoznávanie balíčkov a Artisan príkazov

Ak sme doteraz chceli použiť nejaký super balíček, ktorý sme našli na internete a pomôže nám urobiť zázraky napísaním jedného riadku kódu a má 30 000 hviezdičiek na githube, tak to nebolo problém. Stačilo ho nainštalovať cez Composer a upraviť konfiguráciu aplikácie, aby ho vedela nájsť. Odteraz to bude ešte jednoduchšie. Stačí balíček iba nainštalovať a zvyšok konfigurácie za nás spraví framework sám.

To isté platí aj pre Artisan príkazy, ktoré sme si vytvorili sami. Laravel ich nájde a poskytne, kdekoľvek ich potrebujeme.

V Laravel 5.5 konfiguráciu nainštalovaných balíčkov urobí framework sám.
V Laravel 5.5 konfiguráciu nainštalovaných balíčkov urobí framework sám.
Zdroj: www.unsplash.com 

4. Možnosť použitia nepovinných atribútov

Často sa developer trápi s magickými atribútmi, o ktorých sa domnieva, že v istom bode kódu sú určite dostupné, avšak po obnovení stránky uvidí "Whoops..." s chybovou hláškou. Takúto situáciu musí potom riešiť tzv. Null objektami alebo neustálym testovaním existencie daného atribútu. V Laravel-i 5.5 pribudla pomocná funkcia optional, ktorá toto testovanie za nás vybaví.

5. Custom validátory

Laravel poskytuje veľa rôznych validátorov na ošetrenie situácií, keď používateľ našej aplikácie zadal zlé informácie alebo ich zadal v nesprávnom formáte. Často sa však stane, že potrebujeme ošetriť špecifickú situáciu. Samozrejme aj doteraz existoval spôsob, ako to urobiť, ale okrem nakódenia samotnej overovacej logiky, bolo potrebné náš validátor aj zaregistrovať v systéme. Navyše z miesta, kde sú definované pravidlá validácie, sa nedal jednoduchým spôsobom nájsť.

Nový framework poskytuje oveľa intuitívnejší spôsob tvorby takýchto validátorov. Po vygenerovaní ich základu sa umiestnia v priečinku Rules.

6. API resources

Úplná novinka verzie Laravel 5.5 sú mapovacie triedy s názvom API resources. Slúžia na určenie toho, čo všetko sa má vrátiť v odpovedi na volania našich API. Napr. keď máme API rozhranie na zistenie používateľov, ktorí videli daný článok, Laravel dokáže veľmi jednoducho týchto používateľov nájsť a vrátiť ich informácie v odpovedi a dokonca v správnom tvare. Avšak problém môže byť, že vráti všetky informácie nájdených používateľov. Pre listing nie je zrovna nutné a ani bezpečné vrátiť informácie ako email, dátum registrácie, dátum narodenia atď.

API resources nám umožnia pre každé API volanie určiť presne iba tie informácie, ktoré sa týkajú danej služby.

Novinkou verzie Laravel 5.5 sú API resources.
Novinkou verzie Laravel 5.5 sú API resources. Zdroj: www.pixabay.com

...a čo takého v 5.6?

Verzia 5.5 je síce veľký míľnik ale vývoj frameworku sa nezastavil. Vo februári 2018 vyšla verzia 5.6, ktorá síce nie je LTS, ale prišla so zaujímavými novinkami, ktoré stoja za spomenutie.

1. Rozšírené logovanie

Logovanie chýb alebo určitých udalostí je v Laravel-i veľmi jednoduché. Stačí zavolať funkciu Log::info("Event occurred!") na adekvátnom mieste v kóde a máme správu zalogovanú. Podľa štandardu RFC5452 máme prístupných osem úrovní logovacích správ: emergency, alert, critical, error, warning, notice, info a debug.

Laravel nám umožňuje určiť aj kanál, na ktorý sa majú správy posielať. Kanály môžeme dokonca aj rozdeliť podľa jednotlivých úrovní. Napr. logy na úrovni error majú ísť do súborov a na úrovni emergency majú byť poslané na firemný slack účet.

2. Argon2 hashovanie hesiel

Laravel 5.6 podporuje algoritmus Argon2, ktorý sa preslávil ako výherca súťaže hashovacích funkcií (PHC) v roku 2015.

3. Vylepšené debugovanie v konzole

Pribudol nový balík s názvom Collision, ktorý poskytne oveľa podrobnejšie informácie o vyskytnutej chybe ako doteraz.

Ďalšie zaujímavé novinky môžete nájsť na stránke laravel-news.com alebo, ak ste fanúšikom video tutoriálov, jednoznačne odporúčam laracasts.com. Môžete tu nájsť videá nielen ohľadom Laravel-u, ale aj o iných webových technológiách, či praktikách pre začiatočníkov aj pokročilých. Ak si chcete prečítať podrobnejšie informácie ohľadom jednotlivých modulov, tak najlepšia dokumentácia sa nachádza na oficiálnej webstránke www.laravel.com/docs.

Zdroj:
https://laravel-news.com/
https://laracasts.com
https://laravel.com/docs