Laravel

Laravel Framework
Logo
VývojářTaylor Otwell
Aktuální verze11.1.4 (16. července 2024)
Operační systémmultiplatformní software
Vyvíjeno vPHP
Typ softwaruwebový aplikační framework
Licencelicence MIT
Weblaravel.com
Některá data mohou pocházet z datové položky.

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.

Pomocí Laravelu bylo vytvořeno více než 1 723 068 webových stránek, zatímco počet aktivních webových stránek využívajících Laravel činí v roce 2024 743 470.[1]

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:

  1. Žádost vstoupí do public/index.php souboru
  2. bootstrap/start.php soubor vytvoří aplikaci a nastaví běhové prostředí
  3. Vnitřní soubor famework/start.php nakonfiguruje a načte všechny service providers
  4. dále jsou načteny aplikační soubory app/start
  5. dále je načten aplikační soubor app/routes.php
  6. objekt s dotazem je zaslán aplikaci a ta vrací odpověď (objekt)
  7. 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;
 });

Reference

  1. MUGHAL, Aijaz. Laravel Usage Statistics 2024. Digital Marketing News and Insights | Blog – Aun Digital [online]. 2024-04-25 [cit. 2024-05-11]. Dostupné online. (anglicky) 

Externí odkazy

Média použitá na této stránce

Laravel.svg
Laravel's logo (vector version)
Edit-copy purple-wikit.svg
Autor: Uploaded and compiled by: penubag
Paper sheets by:Davidgothberg, Licence: CC BY-SA 2.5
Transwiki image with project logo