Po půl roce opět vychází nová verze Laravel 5.8! Verze obsahuje několik novinek, opravuje poslední chyby a vylepšuje základ frameworku. Nová verze obsahuje především tyto novinky:

PHP dotenv 3.0

Ačkoliv byla tato verze dotenv vydána již v lednu, do Laravelu se dostala až právě s novou verzí. Dotenv 3.0 nabízí nové a praktičtější použití konfigurace:

  • Větší flexibilita ve kterých částech enviromentu chceme číst a ve kterých chceme něco upravit
  • Je možné zapisovat proměnné ve více řádcích, například takto:
    MY_VARIABLE="value1
    value2"
  • Bylo odstraněno veškeré trimování. Pokud jste měli mezeru na konci řetězci, pak ji tam také najdete. To se může především hodit při definování certifikátů nebo SSH kličů, které budou přijaty takové, jaké jsou, bez potřeby psát různé pseudo charaktery pro nové odřádkování.
  • Konstruktor přijímá pole cest dotenv souborů namísto jediné cesty
  • Lepší validace názvů proměnných pro předcházení různých chyb

Celý seznam změn najdete na Githubu balíčku.

Carbon v2

Nová verze Carbonu nabízí mnoho novinek a dosud se do Laravelu musel instalovat přes samostatný balíček. Laravel 5.8 již umožňuje využít jak Carbon v2, tak zpětně zachovat Carbon v1. Hlavní změna Carbonu v2 nastává v lokalizaci, kdy již nespoléhá na cizí balíčky s překlady, ale namísto toho začala využívat své vlastní nabízející přes 400 překladů.

Změny v TTL cache

Hlavní a asi nejvíce důležitá změna zasahující do produkce, je změna z minut na sekundy. Dosud bylo možné definovat čas v kešce pouze v minutách, kdy se využilo metod remember() a put():

// aktivni clanky byly ulozeny v cache po dobu 5 minut
Cache::remember('active-posts', 5, function () { 
    return Post::active()->get(); 
});

V nové verzi je tedy nutné minuty převést na sekundy. To vede k větší variabilitě hodnot pro ukládání času. Kromě integeru však můžeme vkládat i DateInterval nebo využít instanci carbonu. To může vést k mnohem lepší čitelnosti:

Cache::remember('active-posts', \DateInterval::createFromDateString('5 minutes'), function () { 
    return Post::active()->get(); 
});
Cache::remember('active-posts', now()->addMinutes(5), function () { 
    return Post::active()->get(); 
});

Zastaralé string a array helpery

S novou verzí Laravelu jsou globální helpery stringů a polí označeny jako zastaralé a v další verzi budou odstraněny. V Laravel 5.8 budou helpery i nadále, nicméně namísto přímého volání by jste měli použít tříd \Illuminate\Support\Str a \Illuminate\Support\Arr:

// Zastarale 
array_add($array, $key, $value); 

// Namisto toho pouzijte facadu 
Arr::add($array, $key, $value);

Pokud tyto helpery preferujete, pak Taylor Otwell navrhl, aby se tyto helpery zabalily do samostaného balíčku, který budete moct i nadále v Laravelu používat.

Další novinky

  • Nexmo a Slack notifikace se oddělily z Laravelu a pro jejich provoz je potřeba zvlášť nainstalovat
  • Zkompilované Blade šablony zahrnují i jejich cestu. Tato změna nabízí možnost debugovat Blade v PhpStormu pomocí mappingu.
  • Adresář pro markdown emaily byl změněn z /resources/views/vendor/mail/markdown na text.

Nová oficiální dokumentace je dostupná na laravel.com. Celý seznam změn z předešlé verze najdete v jejich návodu s popisem, jaké změny budou mít největší dopad.