Laravel
Laravel je open source PHP framework pro webové aplikace vyvinutý programátorem Taylorem Otwellem. První vydání se datuje k únoru 2012. Jedná se o framework poskytovaný zdarma jako open source projekt pod licencí MIT. Laravel využívá softwarové architektury MVC, což je zkratka pro model-view-controler architekturu. Model obsahuje aplikační data a funkce, View slouží k prezentaci dat například v HTML, Controller spravuje interakce mezi uživatelem modelem a pohledem. Laravel je význačný především tím, že je optimalizovaný pro reálný svět. Tedy disponuje často užívanými procedurami, které jsou nutné při vývoji webové aplikace.

Základní funkcionalita 
Framework Laravel zahrnuje tuto základní funkcionalitu (+ mnoho dalších)
 autentizace – kontrola přístupu uživatelů
 routování – správa, směrování a zpracování dotazů na jednom místě
 databáze – veškeré nástroje pro komunikaci s databází
 mail – posílání emailu s přílohami a vloženými soubory
 sessions – zastává veškeré agendy okolo sessions
 caching – kešování používaných dat

Základní kámen Laravelu 
Důvod, proč je Laravel v posledních letech tak oblíbeným PHP frameworkem, je ten, že se opírá o frameworkové velikány a podpůrné systémy jako jsou Symfony, Composer, Eloquent ORM a Blade. Mimo jiné také disponuje ověřenými postupy inspirovanými technologiemi jako je Ruby on Rails, ASP.NET MVC a Sinatra.

Základním stavebním kamenem Laravelu je Symfony, který poskytuje moduly Browserkit, Console, Debug a FileSystem. Další důležitou komponentou je Composer (PHP dependencies manager), který deklaruje vztahy v JSON souboru a umožňuje migrace projektů. V neposlední řadě zde figuruje také velmi důležitý Eloquent ORM (object relation mapper), který byl speciálně vyvinut pro framework Laravel, ale je možné ho využít i mimo framework. Využívá návrhového vzoru ActiveRecord, který zajišťuje Insert, Update, Delete na databázi. Dokáže spravovat tabulkové vztahy 1:1, 1:n nebo n:m. Poslední důležitou součástí Laravelu je komponenta Blade, což je šablonovací systém, který spravuje veškeré pohledy s příponou .blade.php.

Composer 
Laravel využívá aplikaci Composer pro správu závislostí v projektu. Composer je software, který dovoluje vývojáři deklarovat závislé knihovny v jeho projektu bez jeho zásahu a tím instalovat framework do našeho projektu. Composer všeobecně řeší tyto problémy:
 Pracujete na projektu, který závisí na několika dalších knihovnách
 Některé z těchto knihoven jsou závislé na dalších knihovnách
 Composer zjistí, kterou verzi jakých balíčků má nainstalovat a nainstaluje je do projektu (to znamená, že je stáhne a přiřadí k projektu)
V kombinaci s Laravel frameworkem, nám Composer vytváří spolehlivé prostředí pro start našeho projektu.

Softwarové požadavky na Laravel 
 PHP alespoň verze 5.4
 PHP rozšíření MCrypt
 PHP rozšíření JSON
 Databázový stroj (nejlépe MySQL, avšak Laravel se vypořádá i s ostatními typy)

Není třeba instalovat žádný webový server pro vývoj, protože Laravel disponuje svým vlastním serverem Artisan. Pro deployment je samozřejmě třeba příslušný webový server nainstalovat a nakonfigurovat soubory .htaccess.

Instalace Laravelu 
Laravel jde instalovat několik způsoby. Použitím Instaleru, Composeru nebo stáhnutím. Nejjednodušším způsobem instalace je pomocí Laravel installeru. I přesto, že chcete instalovat Laravel pomocí installeru, je nutnost, aby byl přítomný i Composer, přes který instalace probíhá. Composer automaticky stáhne všechny potřebné a podpůrné frameworky včetně Laravelu, nainstaluje je a vytvoří nový čistý projekt.

Základní cyklus Laravelu

Základní cyklus 
Všechny žádosti zasílané aplikaci jsou směrovány skrze soubor public/index.php. Pokud užíváte server Apache, soubor .htaccess, který doprovází Laravel, musí směrovat veškeré požadavky na aplikaci na soubor index.php. Právě zde začíná proces, kdy Laravel zpracovává klientské požadavky a klientům vrací odpovědi. Zdaleka nejdůležitějším principem k pochopení jsou poskytovatelé služeb (Service Providers). Seznam poskytovatelů služeb naleznete v konfiguračním souboru config/app.php v poli "arrays". Poskytovatelé služeb jsou základním, tzv. bootstrap mechanismem Laravelu. Ještě předtím, než se zaměříme na problematiku poskytovatelů, podívejme se ještě na soubor index.php. Poté, co klientský požadavek vstoupí do souboru index.php, je načten soubor bootstrap/start.php. Tento soubor vytvoří nový aplikační objekt Laravelu, který také slouží jako IoC kontejner.

Po vytvoření aplikačního objektu se nastaví několik cest a proběhne detekce běhového prostředí. Potom je zavolán interní bootstrap skript. Tento soubor dřímá hluboce ve zdroji Laravelu a nastavuje několik dalších věcí na základě konfiguračních souborů, jako jsou timezone, reportování chyb apod. Mimo jiné také dělá velmi důležitou věc a to je registrování všech poskytovatelů služeb nakonfigurovaných pro naši aplikaci.

Jednoduchý poskytovatelé služeb mají jenom jednu metodu a to register. Tato metoda register je zavolána, když je "Service provider" registrovaný u aplikačního objektu. Uvnitř této metody "Service provider" deklaruje věci, které požaduje po IoC kontejneru. V podstatě každý "Service provider" stmeluje jeden nebo více uzávěrů do kontejneru, který nám poskytuje přístup k těmto vázaným službám uvnitř aplikace. Takže například QueueServiceProvider registruje uzávěry, které řeší různé třídy související s frontami. Samozřejmě, poskytovatelé služeb mohou být používány k jakékoliv bootsrappové úloze, ne jen registrování věcí k IoC kontejneru. Poskytovatel služby může registrovat posluchače událostí, skladatele pohledů, Artisan příkazy a další.

Potom co jsou všechny služby registrovány, jsou načteny soubory z app/start. Nakonec je načten soubor app/routes.php. Jakmile je načten soubor routes.php , objekt s žádostí je zaslán aplikaci.

Shrnuto:
 Žádost vstoupí do public/index.php souboru
 bootstrap/start.php soubor vytvoří aplikaci a nastaví běhové prostředí
 Vnitřní soubor famework/start.php nakonfiguruje a načte všechny service providers
 dále jsou načteny aplikační soubory app/start
 dále je načten aplikační soubor app/routes.php
 objekt s dotazem je zaslán aplikaci a ta vrací odpověď (objekt)
 Odpověď je zaslána klientovi
Nyní máme poměrně dobrou představu o tom jak Laravel zaopatřuje dotazy do aplikace, tak se pojďme podívat na soubory app/start.

Start soubory 
Naše aplikační start soubory jsou umístěny v app/start. V základě jsou zahrnuty v aplikaci tyto tři: global.php, local.php a artisan.php. Soubor global.php obsahuje několik základních věcí jako je registrace Loggera a zahrnutí souboru app/filters.php. Avšak je jen na nás jaké věci si do tohoto souboru přidáme. Bude to automaticky zahrnuto při každé žádosti na aplikaci bez ohledu na prostředí. Na druhou stranu soubor local.php je jediný volaný v případě, že aplikace je spuštěna na lokálním běhovém prostředí. Samozřejmě pokud máme více běhových prostředí můžeme také vytvořit soubory pro tyto prostředí. Tyto soubory budou automaticky zahrnuty pokud aplikace bude běžet v tom daném prostředí. Takže například pokud máme nastaveno development prostředí v bootstrap/start.php souboru, měli bychom vytvořit soubor app/start/development.php soubor, který bude zahrnut pokaždé když dojde k dotazu na aplikaci v tomto prostředí.

Co se píše do start souborů 
Startovací soubory slouží jako jednoduché místo k umístění jakéhokoliv bootstrapovacího kódu. V těchto souborech můžeme například registrovat pohledy, konfigurovat logovací nastavení, nastavovat PHP apod. Je to na nás. Samozřejmě vypsání veškerého bootstrapovacího kódu do startovacích souborů může být docela nepřehledné. Zvažte přesunutí nějakého bootstrapovacího kódu do poskytovatelů služeb.

Základní routování 
Většina routů pro naši aplikaci je definována v souboru app/routes.php. Nejjednodušší Laravelské směrovače se skládají z URI a uzávěru.

Základní GET směrovač 
Route::get('/', function()
 {
     return 'Hello World';
 });

Základní POST směrovač 
Route::post('foo/bar', function()
 {
     return 'Hello World';
 });

Směrování pro oba způsoby přenosu dat 
Route::match(array('GET', 'POST'), '/', function()
 {
     return 'Hello World';
 });

Směrování přes https(vynuceně) 
Route::get('foo', array('https', function()
 {
     return 'Must be over HTTPS';
 }));

Generování URL adresy na některé směrovače 
$url = URL::to('foo');

Routování s parametry 
Route::get('user/{id}', function($id)
 {
     return 'User '.$id;
 });

Externí odkazy 
 
 Oficiální stránka frameworku
 Oficiální stránka
 Video tutoriály
 Laracasts.com
 Lynda.com 
 Udemy.com

Webové aplikační frameworky
Svobodný software naprogramovaný v PHP