Laravel
![ikona](http://upload.wikimedia.org/wikipedia/commons/thumb/2/2c/Broom_icon.svg/48px-Broom_icon.svg.png)
![]() | |
Vývojář | Taylor Otwell |
---|---|
Aktuální verze | 11.1.4 (16. července 2024) |
Operační systém | multiplatformní software |
Vyvíjeno v | PHP |
Typ softwaru | webový aplikační framework |
Licence | licence MIT |
Web | laravel |
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
![ikona](http://upload.wikimedia.org/wikipedia/commons/thumb/f/f8/Edit-copy_purple-wikit.svg/48px-Edit-copy_purple-wikit.svg.png)
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; });
Reference
- ↑ 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
Obrázky, zvuky či videa k tématu Laravel na Wikimedia Commons
- Oficiální stránky
Webové aplikační frameworky | |
---|---|
ASP.NET | ASP.NET MVC • BFC • DotNetNuke • MonoRail • Umbraco |
C++ | CppCMS |
ColdFusion | ColdSpring • Fusebox • Mach-II • Model-Glue • on Wheels • onTap |
Common Lisp | ABCL-web • BKNR • SymbolicWeb • UnCommon Web |
Java | |
JavaScript | AngularJS • Archetype JavaScript Framework • Bonsai (framework) • Brick (framework) • CreateJS • D3 • Dojo • Ember • Enyo (framework) • ExtJs • FabricJS • Fleegix • JavaScriptMVC • jQuery • jTypes • KineticJS • Knockout.js • Lo-dash • midori • MooTools • NodeJs • PaperJS • Processing.js • Prototype • qooxdoo • Raphael (framework) • React • RightJS • Shipyard • SimpleJS • SproutCore (JavaScript/Ruby) • Spry • The X Toolkit • Thorax (framework) • Tree.js • UIZE • Underscore • Vue.js • WebApp Install • YUI • Zepto (framework) |
Perl | Catalyst • Dancer • Interchange • Mason • Masser • Maypole • Mojolicious • OX • PEE • Plack • WebGUI |
PHP | Agavi • Akelos • CakePHP • Chisimba • CodeIgniter • Garden Platform • Horde • Jelix • Kohana • Kolibri • KumbiaPHP • Laravel • Midgard • Nette Framework • Orinoco • PHPonTrax • PRADO • Qcodo • Qcubed • Seagull • Simplicity • Symfony • WASP • Yii Framework • Zend Framework • Zope |
Python | |
Ruby | Hanami • Merb • Ruby on Rails • Sinatra |
Scala | Lift |
Smalltalk | AIDA/Web • Seaside |
Ostatní jazyky | Application Express (PL/SQL) • Fusebox (ColdFusion a PHP) • OpenACS (Tcl) • Yaws (Erlang) • HAppS (Haskell) |