Documente Academic
Documente Profesional
Documente Cultură
Site Didactic
ACASĂ
LECŢII
LUCRĂRI
TESTE
REFERINŢE
DESCARCĂ
ELABORĂRILE ELEVILOR
Unități de învățare
Rutarea
Controller-e
Vederi
Modele
Servicii
Testarea
Publicarea proiectului
Astfel de produse software există! Acestea sunt framework-urile. Deja create, framework-urile, oferă dezvoltatorului tot de
ce are nevoie pentru:
Dezvoltatorului îi rămâne să instaleze doar framework-ul, să-l configureze (cel puțin să precizeze informațiile necesare
pentru conectarea la baza de date), să scrie și să încorporeze module software în el care să realizeze sarcini specifice
site-ului ce este dezvoltat: procesarea datelor specifice și generarea de pagini specifice bazate pe acesta. Este clar că, din
moment ce dezvoltatorii de framework-uri au făcut o mare parte din munca programatorul Web, site-ul poate fi creat foarte
rapid pe baza acestuia.
Framework-urile sunt create cu scopul de a facilita dezvoltarea de software, oferind programatorilor posibilitatea de a
acorda mai mult timp identificării necesităților software-ului și nu în scopul de a dezlega infinite probleme necesare
obținerii unui sistem funcțional.
1. Laravel
2. CodeIgniter
3. Symfony
4. CakePHP
5. Yii
6. Zend Framework
https://web.ceiti.md/lesson.php?id=17#t4 1/20
25.05.2020 PHP framework Laravel
7. Phalcon
8. FuelPHP
9. PHPixie
10. Slim
Laravel este un framework MVC PHP creat de Taylor Otwell în 2011. Laravel a devenit cel mai popular framework PHP
gratuit, open-source din lume. Deoarece poate trata aplicații web complexe în siguranță, într-un ritm considerabil mai rapid
decât alte framework-uri. Laravel simplifică procesul de dezvoltare prin ușurarea sarcinilor obișnuite, cum ar fi rutarea,
sesiunile, memorarea în cache și autentificarea.
100
75
50
25
Laravel este scris în PHP, cel mai popular limbaj de programare a site-urilor dinamice.
Laravel nu are cerințe specifice de sistem și operează/funcționează pe capacitățile aproape la toți furnizorii de
găzduire.
Oferă aproape toată funcționalitatea de bază a site-urilor, inclusiv un sistem puternic de control al accesului,
instrumente pentru trimiterea de e-mail și un mecanism excepțional de migrare.
Toate instrumentele incluse sunt deja configurate în cel mai bun mod pentru majoritatea cazurilor.
Aproape tot ce aveți nevoie poate fi implementat cu un cod de program foarte scurt. Adică există o reducere
suplimentară a intensității forței de muncă.
Există multe biblioteci suplimentare scrise de dezvoltatori terți care extind funcționalitatea framework-ului Laravel.
Laravel include instrumente de prototipare - crearea de semifabricate pentru module software de diferite tipuri, în
care dezvoltatorul site-ului va trebui doar să adauge propriul său cod.
Principiul Model-View-Controller
Un framework reprezintă o unealtă care are la bază o serie de Clase și script-uri PHP, concepute special pentru a facilita
programarea unei aplicații sau a unui website, utilizând conceptul MVC (model-view-controller).
Ce înseamnă MVC:
1. Litera M provine de la cuvântul Model. Un model este o clasa ce are ca parametrii câmpurile dintr-o tabela, ajutând
astfel programatorul să lucreze mult mai ușor cu bazele de date.
https://web.ceiti.md/lesson.php?id=17#t4 2/20
25.05.2020 PHP framework Laravel
2. Litera V provine de la cuvântul View. Un view este acel fișier php pe care îl vede utilizatorul unui site sau al unei
aplicații. Un framework poate transpune codul PHP în cod HTML. Într-un view se pot pune formulare, texte,
scripturi javascript și tot ceea ce este nevoie pentru a facilita experiența vizuală a utilizatorului final.
3. Litera C provine de la cuvântul Controller. Un controller, așa cum se înțelege și din denumirea lui, controlează
acțiunile unei aplicații sau ale unui site. Într-un controller se vor defini acțiunile, drepturile de acces și alte funcții
necesare pentru o bună funcționare a aplicației. Spre exemplu, pentru a defini un view din aplicație, este necesară
definirea unei funcții în care putem face interogări, adăugări în baza de date în funcție de formularul din view.
Cum funcționează
Schema de funcționare a unei aplicații modelate după arhitectura MVC decurge, în linii mari, în felul următor:
https://web.ceiti.md/lesson.php?id=17#t4 3/20
25.05.2020 PHP framework Laravel
1. Notepad ++ - un editor de coduri sursă, care indeplinește foarte bine și funcțiile Notepad-ului din windows.
Limbajele de programare suportate sunt foarte variate. Programul nu necesita resurse hardware mai mari decat
Notepad-ul din Windows. Notepad++ - un Notepad mult mai complex. Proiectul include foarte multe plug-in-uri
ajutatoare pentru anumite editari complexe. Softul este gratuit (licenta GPL).
2. Sublime Text - Sublime Text 3 este un editor de text care e la modă de ceva timp, datorită faptului că reușește să
îmbine o mulțime de aspecte pe care ți le-ai dori de la un editor într-un program mic, dar foarte puternic. Sublime
Text 3 folosește un sistem de API Python pentru plugin-uri și teme, care sunt incredibil de folositoare.
3. PhpStorm este un IDE comercial, multi-platformă, pentru PHP, construit de compania JetBrains din Republica
Cehă. PhpStorm oferă un editor pentru PHP, HTML și JavaScript cu analize de cod din zbor, prevenirea erorilor și
refactorii automate pentru codul PHP și JavaScript.
4. Visual Studio Code este un editor de cod sursă dezvoltat de Microsoft pentru Windows, Linux și macOS. Include
suport pentru depanare, control Git încorporat și GitHub, evidențierea sintaxei, completarea inteligentă a codului.
Este foarte personalizabil, permițând utilizatorilor să schimbe tema, comenzile rapide de la tastatură, preferințele și
https://web.ceiti.md/lesson.php?id=17#t4 4/20
25.05.2020 PHP framework Laravel
să instaleze extensii care adaugă funcționalitate. Codul sursă este liber și open source și este eliberat sub licența MIT
permisivă. În Studiul pentru dezvoltatori Stack Overflow 2019, Visual Studio Code a fost clasat cel mai popular
instrument de mediu pentru dezvoltatori, 50,7% din 87.317 respondenți au susținut că îl folosesc.
Dar, există o problemă. Suntem nevoiți să instalăm de fiecare dată librariile manual, să le includem manual în fișiere - un
adevarat chin.
Asemănător package manager-elor pentru sistemele de operare, gen cel pentru Ubuntu, are și PHP package manager-ul
lui. Aceasta înseamnă că îți instalează el librariile care le dorești, configurează un autoload pentru ele, adică nu mai
trebuie să le incluzi manual, se includ doar la momentul când ai nevoie de ele.
Package manager-ul din PHP este Composer cu lista de pachete disponibilă la adresa packagist.org. Toate librăriile care
le vei folosi sunt deja acolo.
https://web.ceiti.md/lesson.php?id=17#t4 5/20
25.05.2020 PHP framework Laravel
Odată instalată, comanda laravel new va crea o nouă instalare Laravel în directorul specificat. De exemplu, laravel
new blog va crea un director numit blog care conține o instalație Laravel proaspătă, cu toate dependențele Laravel deja
instalate:
În mod alternativ Laravel-ul poate fi instalat utilizând Composer-ul prin comanda create-project
- în directorul "C:/xampp/htdocs/", composer-ul va crea un director numit "project_name" cu framework-ul Laravel iar
instrucțiunea "dev-develop" specifică să fie instalată versiunea următoare, care este în stadiu de dezvoltare.
- în directorul "C:/xampp/htdocs/", composer-ul va crea un director numit "project_name" cu framework-ul Laravel iar
instrucțiunea "–-prefer-dist" specifică să fie instalată versiunea curentă stabilă.
https://web.ceiti.md/lesson.php?id=17#t4 6/20
25.05.2020 PHP framework Laravel
Pentru a testa cu XAMPP integritatea instalării, porniți XAMPP-ul, apoi în browser accesați:
localhost/project_name/public
Alternativ, poți folosi serverul web incorporat în PHP. În interfața Command Line navigați către directorul cu proiectul
Laravel, apoi inițiați următoarea instrucțiune în linia de commandă:
După executarea comenzii de mai sus, veți vedea afișat ca în următoarea imagine:
La apăsarea combinației de taste ctrl + c va opri serverul și va returna controlul în linia de comandă.
În mod implicit, serverul HTTP va asculta portul 8000. Cu toate acestea, dacă acel port este deja în uz sau doriți să serviți
mai multe aplicații în acest fel, puteți să specificați ce port să utilizați, adăugând argumentul --port:
https://web.ceiti.md/lesson.php?id=17#t4 7/20
25.05.2020 PHP framework Laravel
Models sunt create direct în directorul app, pe când Controllers și Middlewares sunt create în directoarele lor respective
în directorul Http. Views în Laravel (template-urile redate ca HTML) sunt create în directorul resources/views.
Directorul resources conține fișiere pentru diferite resurse, cum ar fi: LESS și Sass, fisierele de limbă și localizare și
Template-uri care sunt rendate ca HTML.
Directorul storage conține depozitul aplicației (cum ar fi fisiere uploadate), depozitul Framework-ului (în framework) sunt
stocate fișiere cache și logs.
Routing-ul pentru controllers este gestionat de fișierul web.php aflat în directorul routes.
În fișierul .env se pot adăuga datele pentru conectare la o bază de date mysql (DB_DATABASE, DB_USERNAME,
DB_PASSWORD).
Directorul public este documentul root al aplicației în browser. Conține activele pentru pagină în browser, cum ar fi
JavaScript, CSS, Imagini, etc.
Configurare de mediu
Configurare baza de date - Creare baza de date:
https://web.ceiti.md/lesson.php?id=17#t4 8/20
25.05.2020 PHP framework Laravel
Deschideți browser-ul web și tastați localhost/phpmyadmin sau 127.0.0.1/phpmyadmin (vă va redirecționa către pagina de
control phpMyAdmin). Faceți clic pe baze de date și introduceți numele bazei de date, apoi faceți clic pe Creare, ne va
crea baza de date.
Denumirea aplicației
php artisan up
Deschideți interfața Command Line (CMD în Windows), navighează către directorul unde este instalat framework-ul
Laravel și rulează această comandă pentru a porni serverul php integrat:
http://localhost:8000/
Va arăta pagina principală predefinită. Pentru a schimba conținutul din această pagină, deschide fișierul
welcome.blade.php (în directorul resources/views), și editați conținutul cu orice cod php, html, css, javascript care vreți.
1 <!doctype html>
2 <html lang="{{app()->getLocale()}}">
3 <head>
4 <meta charset="utf-8">
5 <title>Hello</title>
6 </head>
7 <body>
8 <h1>Hello to Me</h1>
9 <p>Laravel {{App::VERSION()}}</p>
10 </body>
11 </html>
Acum, dacă accesați //localhost:8000 din nou în browser, veți vedea o pagină ca în această imagine:
Partea .blade în numele fișierului welcome.blade.php este pentru utilizare Blade Templates. Dacă redenumești acel fișier
în welcome.php, va afișa conținutul fără a interpreta codul Templates de tip Blade.
Rutarea
Principiile rutării
https://web.ceiti.md/lesson.php?id=17#t4 10/20
25.05.2020 PHP framework Laravel
Funcția de bază a oricărui framework este de a prelua cereri de la un utilizator și de a furniza răspunsuri, de obicei prin
HTTP(S). Aceasta înseamnă că definirea rutelor unei aplicații este primul și cel mai important lucru de abordat atunci când
înveți un framework. Fără rute, nu aveți posibilitatea de a interacționa cu utilizatorul final.
În acest capitol vom examina rutele din Laravel și vom arăta cum să le definim, cum să le îndreptăm către codul pe care ar
trebui să-l execute și cum să utilizeze instrumentele de rutare ale Laravel pentru a face față unei game diverse de
necesități de rutare.
Definirea rutelor
Într-o aplicație Laravel, veți defini rutele dvs. „web” în routes/web.php și rutele dvs. API în routes/api.php. Rutele web sunt
cele care vor fi vizitate de utilizatorii finali; Rutele API sunt cele pentru API-ul dvs., dacă aveți. Deocamdată, ne vom
concentra pe rutele din routes/web.php.
Cel mai simplu mod de a defini o rutare este de a potrivi o cale (de exemplu, /) cu o închidere, așa cum se vede în
exemplul următor(definirea de bază a rutării):
1 // routes/web.php
2 Route::get('/', function () {
3 return 'Hello, World!';
4 });
Multe site-uri web simple pot fi definite în întregime în fișierul rutelor web. În exemplul următor sunt ilustrate câteva rute
GET simple combinate cu unele șabloane:
1 Route::get('/', function () {
2 return view('welcome');
3 });
4 Route::get('about', function () {
5 return view('about');
6 });
7 Route::get('products', function () {
8 return view('products');
9 });
10 Route::get('services', function () {
11 return view('services');
12 });
Rutele definite în routes/web.php pot fi accesate întroducând URL-ul rutei definite în browserul dvs. De exemplu, puteți
accesa următoarea rută navigând pe localhost:8000/about în browser:
Metode HTTP
Dacă nu sunteți familiarizat cu ideea metodelor HTTP, citiți în acest capitol pentru mai multe informații, dar deocamdată
știți că fiecare cerere HTTP are un „verb” sau o acțiune, împreună cu acesta. Laravel vă permite să vă definiți rutele pe
baza verbului folosit; cele mai frecvente sunt GET și POST, urmate de PUT, DELETE și PATCH. Fiecare metodă
comunică un lucru diferit serverului și codului dvs. despre intențiile apelantului.
Verbe de rutare
Observați că folosim Route::get în definirea rutelor noastre. Aceasta înseamnă că îi spunem lui Laravel să se
potrivească numai pentru aceste rute atunci când cererea HTTP folosește acțiunea GET. Dar dacă este un formular
POST, sau poate unele scripturi JavaScript care trimit cereri PUT sau DELETE? Există câteva alte opțiuni pentru metodele
date de a apela la o definiție a rutei, așa cum este ilustrat în exemplul următor:
1 Route::get('/', function () {
2 return 'Hello, World!';
3 });
4 Route::post('/', function () {});
5 Route::put('/', function () {});
6 Route::patch('/', function () {});
7 Route::delete('/', function () {});
8 Route::options('/', function () {});
Uneori poate fi necesar să definiți o rută care răspunde la mai multe verbe HTTP. Puteți face acest lucru folosind metoda
match. Sau puteți chiar să definiți o rută care răspunde la toate verbele HTTP folosind metoda any:
https://web.ceiti.md/lesson.php?id=17#t4 11/20
25.05.2020 PHP framework Laravel
1 Route::match(['get', 'post'], '/', function () {});
2 Route::any('/', function () {});
Redirecționare rute
Dacă definiți o rută care redirecționează către un alt URI, puteți utiliza metoda Route::redirect. Această metodă oferă o
comandă rapidă, astfel încât nu trebuie să definiți o rută completă sau un controler pentru a efectua o redirecționare
simplă:
1 Route::redirect('/here', '/there');
Rutele View
Dacă ruta trebuie doar să returneze o vizualizare, puteți utiliza metoda Route::view. Ca și metoda redirecționării, această
metodă oferă o scurtătură simplă, astfel încât nu trebuie să definiți o rută completă sau un controller. Metoda view acceptă
un URI ca prim argument și un nume de vizualizare ca al doilea argument. În plus, puteți furniza o serie de date pentru a
trece la vizualizare ca un al treilea argument opțional:
1 Route::view('/welcome', 'welcome');
2
3 Route::view('/welcome', 'welcome', ['name' => 'Ion']);
Parametrii rutelor
Parametri obligatorii
Uneori, va trebui să capturați segmente ale URI pe ruta dvs. De exemplu, poate fi necesar să capturați un ID al
utilizatorului de pe adresa URL. Puteți face acest lucru prin definirea parametrilor de traseu:
Puteți defini parametri de rută cât de mulți sunt necesari pentru ruta dvs.:
Parametrii sunt întotdeauna încadrați în {} și sunt alcătuite din caractere alfabetice și poate să nu conțină caracterul -. În
loc să folosiți caracterul -, folosiți caracterul subliniere (_).
Rute personalizate
Puteți denumi rute permit generarea convenabilă de adrese URL sau redirecționări pentru rute specifice. Puteți specifica
un nume pentru o rută prin încadrarea metodei numelui în definiția rutei:
1 Route::get('user/profile', function () {
2 //
3 })->name('profile');
1 Route::get('user/profile', 'UserProfileController@show')->name('profile');
https://web.ceiti.md/lesson.php?id=17#t4 12/20
25.05.2020 PHP framework Laravel
După ce ați atribuit un nume unei rute date, puteți utiliza numele rutei atunci când generați adrese URL sau redirecționări
prin intermediul funcției de rută globală:
1 // Generating URLs...
2 $url = route('profile');
3
4 // Generating Redirects...
5 return redirect()->route('profile');
Controller-e
În cadrul MVC, litera „C” reprezintă Controller. Acționează ca o direcționare a traficului între vizualizări și modele.
Controller-ele grupează logica de gestionare a cererilor aferente într-o singură clasă. Controlerele sunt stocate în
directorul app/Http/Controllers.
Înlocuiți controller_name cu numele controlerului. Fișierul creat poate fi văzut în mapa app/Http/Controllers. Veți vedea
că unele coduri de bază au fost deja făcute pentru dvs. și puteți adăuga codurile personalizate. Controller-ul creat poate fi
apelat din routes.php prin următoarea sintaxă:
1 Route::get(‘base URI’,’controller@method’);
Exemplu
Pasul 3 - Va crea un nou fișier numit MyController.php în directorul app/Http/Controllers cu un cod de bază Controller-ul
creat extinde clasa Controller de bază inclusă cu Laravel.
1 <?php
2
3 namespace App\Http\Controllers;
4
5 use Illuminate\Http\Request;
6
7 class MyController extends Controller
8 {
9 //
10 }
Acest fișier MyController.php poate fi creat manual și apoi de adăugat codul de mai sus.
https://web.ceiti.md/lesson.php?id=17#t4 13/20
25.05.2020 PHP framework Laravel
Pasul 1 - Creați o metodă publică numită index() care primește obiectul Request și returnează o pagină view cu date
pentru template.
1 namespace App\Http\Controllers;
2 use Illuminate\Http\Request;
3
4 class MyController extends Controller {
5
6 //receives the request objet; returns a simple page using view
7 public function index(Request $req){
8
9 //set array with keys to be passed to view() for template
10 $data =[
11 'uri'=>$req->path(),
12 'url'=>$req->url(),
13 'method'=>$req->method()
14 ];
15
16 return view('index', $data);
17 }
18 }
1 <!doctype html>
2 <html lang="{{app()->getLocale()}}">
3 <head>
4 <meta charset="utf-8">
5 <title>Home Page</title>
6 </head>
7 <body>
8 <h1>Home page</h1>
9 URI: {{$uri}}<br>
10 URL: {{$url}}<br>
11 METHOD: {{$method}}
12 </body>
13 </html>
Pasul 3 - Folosește metoda MyController index() în route-ul pentru pagina principală "/" (în routes/web.php ștergeți route-
ul get() existent pentru '/'), adăugați:
1 Route::name('home')->get('/', 'MyController@index');
Pasul 4 - Deschideți bowser-ul și accesați localhost:8000, va afișa conținutul creat în index.blade.php, o pagină ca
imaginea de mai jos:
Controller Resursa
https://web.ceiti.md/lesson.php?id=17#t4 14/20
25.05.2020 PHP framework Laravel
Controller-ul Resursa (Resource Controller) este o clasă Controller care conține toate metodele pentru a efectua
operațiuni CRUD (Create, Read, Update, Delete).
De exemplu, să creăm un controller care se ocupă de toate cererile HTTP pentru photos stocate de o aplicație Laravel.
Se va crea un fișier PhotoController.php în directorul app/Http/Controllers, cu o clasă care extinde clasa Controller de
bază, și câte o metodă pentru fiecare din operațiunile CRUD valabile.
Pasul 2 - Adăugați un șir simplu la return în fiecare metodă a clasei PhotoController pentru a face teste.
1 <?php
2
3 namespace App\Http\Controllers;
4
5 use Illuminate\Http\Request;
6
7 class PhotoController extends Controller
8 {
9 /**
10 * Display a listing of the resource.
11 *
12 * @return \Illuminate\Http\Response
13 */
14 public function index()
15 {
16 return 'index';
17 }
18
19 /**
20 * Show the form for creating a new resource.
21 *
22 * @return \Illuminate\Http\Response
23 */
24 public function create()
25 {
26 return 'create';
27 }
28
29 /**
30 * Store a newly created resource in storage.
31 *
32 * @param \Illuminate\Http\Request $request
33 * @return \Illuminate\Http\Response
34 */
35 public function store(Request $request)
36 {
37 return 'store, uri: ' . $request->path();
38 }
39
40 /**
41 * Display the specified resource.
42 *
43 * @param int $id
44 * @return \Illuminate\Http\Response
45 */
46 public function show($id)
47 {
48 return 'show, id:' . $id;
49 }
50
51 /**
52 * Show the form for editing the specified resource.
53 *
54 * @param int $id
55 * @return \Illuminate\Http\Response
56 */
57 public function edit($id)
58 {
59 return 'edit, id:' . $id;
60 }
61
62 /**
63 * Update the specified resource in storage.
https://web.ceiti.md/lesson.php?id=17#t4 15/20
25.05.2020 PHP framework Laravel
64 *
65 * @param \Illuminate\Http\Request $request
66 * @param int $id
67 * @return \Illuminate\Http\Response
68 */
69 public function update(Request $request, $id)
70 {
71 return 'update, uri: ' . $request->path() . '-id: ' . $id;
72 }
73
74 /**
75 * Remove the specified resource from storage.
76 *
77 * @param int $id
78 * @return \Illuminate\Http\Response
79 */
80 public function destroy($id)
81 {
82 return 'destroy, id: ' . $id;
83 }
84 }
1 Route::resource('photo', 'PhotoController');
Această singură instrucțiune crează multiple Route pentru a se ocupa de mai multe tipuri de apelări.
1 Route::resources([
2 'photos' => 'PhotoController',
3 'posts' => 'PostController'
4 ]);
Deoarece formularele HTML nu pot face cereri PUT, PATCH (pentru update) sau DELETE (pentru ștergere), va trebui să
adaugați un câmp ascuns, cu name='method_' pentru a indica aceste tipuri de cereri HTTP. Funcția method_field() poate
crea automat acest câmp:
https://web.ceiti.md/lesson.php?id=17#t4 16/20
25.05.2020 PHP framework Laravel
{{method_field('PUT')}}
Pentru a afla ce route-uri sunt valabile în aplicația curentă, rulează în CLI următoarea comandă:
Vederi
În cadrul MVC, litera „V” reprezintă Views(Vederi). Vederile conțin HTML-ul (difuzat) de aplicația dvs. Vederile separă
logica aplicației de logica de prezentare. Fișierele View au extensia .php sau .blade.php dacă se folosește șabblonul Blade
și pot conține cod HTML, CSS, JavaScript și PHP. Vederile sunt stocate în directorul resource/view. O vedere simplă ar
putea arăta astfel:
Pentru a vizualiza acest View definim următoarea rută în fișierul web.php din directoriul routes:
1 Route::get('/', function () {
2 return view('greeting', ['name' => 'Victoria']);
3 });
Primul argument transmis asistentului de vizualizare corespunde numelui fișierului de vizualizare din directorul
resouce/view. Al doilea argument este un array de date care ar trebui să fie puse la dispoziția vederii. În cazul dat, se
transmite variabila nume, care este afișată în vedere folosind sintaxa Blade.
Vederile se pot afla de asemenea și în subdirectoarele directorului resources/views. Notarea „punct” poate fi utilizată
pentru a face referire la vederile din subdirector. De exemplu, dacă vederea dvs. este stocată în
resources/views/admin/profile.blade.php, este posibil să faceți referire astfel:
Dacă trebuie să determinați dacă există o vedere, puteți utiliza fațada View. Metoda exists va returna true dacă vederea
există:
1 use Illuminate\Support\Facades\View;
2
3 if (View::exists('emails.customer')) {
4 //
5 }
După cum ați văzut în exemplele anterioare, este posibil să transmiteți un tablou de date către vederi:
La transmiterea informațiilor în acest mod, datele ar trebui să fie un tablou de perechi cheie/valoare. În interiorul vederii,
puteți accesa fiecare valoare folosind cheia corespunzătoare, cum ar fi:
https://web.ceiti.md/lesson.php?id=17#t4 17/20
25.05.2020 PHP framework Laravel
Ca o alternativă la transmiterea unui tablou complet de date funcției view, puteți utiliza metoda with pentru a adăuga părți
de date individuale în vizualizare:
Sau
Sau
1 return view('greeting')->with(['name'=>'Victoria',
2 'age'=>'18',
3 'email'=>'victoria@gmail']);
Șablonul Blade
Blade este un motor simplu, dar puternic de șablonizare, prevăzut de Laravel. Spre deosebire de alte motoare populare
de șablonizare PHP, Blade nu vă restricționează să utilizați codul PHP simplu în vederile dvs. De fapt, toate vederile
Blade sunt compilate în cod PHP simplu și sunt memorate în cache până când sunt modificate, ceea ce înseamnă că
Blade supraîncarcă "zero" aplicația ta. Fișierele de vizualizare Blade folosesc extensia de fișier .blade.php și sunt de
obicei stocate în directorul resources/view.
Moștenire în șabloane
Două dintre avantajele principale ale utilizării Blade-ului sunt moștenirile și secțiunile șabloane. Pentru a începe, să
aruncăm o privire la un exemplu simplu. În primul rând, vom examina o structură a paginii "master". Deoarece majoritatea
aplicațiilor web păstrează același șablon general pe diverse pagini, este convenabil să definiți acest șablon ca o singură
vedere Blade:
După cum vedeți, acest fișier conține marcaj HTML tipic. Directiva @section, așa cum sugerează și numele, definește o
secțiune de conținut, în timp ce directiva @yield este utilizată pentru a afișa conținutul unei anumite secțiuni.
Acum că am definit un șablon pentru aplicația noastră, să definim o pagină copil care moștenește acest șablon.
Extinderea șablonului
Când definiți o vedere pentru copii, utilizați directiva Blade @extends pentru a specifica ce șablon ar trebui să
"moștenească" vederea copil. Vederea care extind un șablon Blade pot injecta conținut în secțiunile șablonului folosind
directivele @section. Nu uitați, așa cum se vede în exemplul de mai sus, conținutul acestor secțiuni va fi afișat în șablon
folosind @yield:
https://web.ceiti.md/lesson.php?id=17#t4 18/20
25.05.2020 PHP framework Laravel
8 @parent
9
10 <p>This is appended to the master sidebar.</p>
11 @endsection
12
13 @section('content')
14 <p>This is my body content.</p>
15 @endsection
Unde directivele:
1 Route::get('/child', function () {
2 return view('child');
3 });
Middleware
https://web.ceiti.md/lesson.php?id=17#t4 19/20
25.05.2020 PHP framework Laravel
Middleware acționează ca un intermediar între cerere și răspuns, asigură un mecanism pentru filtrare cereri HTTP. Spre
exemplu Laravel include un middleware care verifică dacă utilizatorul aplicației este autentificat sau nu. Dacă utilisatorul
este autentificat, el va fi redirecționat către homepage, altfel va fi redirecționat către pagina de login.
Există câteva middleware incluse în framework-ul Laravel, inclusiv middleware pentru autentificare și protecție CSRF.
Toate aceste middleware-uri sunt localizate în directorul app/Http/Middleware/.
Definire Middleware
Poți crea propriul middleware pentru a filtra și a prelucra cererile înainte de a returna raspunsuri. Pentru a crea un
Middleware poți folosi comanda artisan make:middleware în CLI.
- Exemplu, în interfața Command Line, navighează către directorul cu proiectul Laravel și execută această comandă
pentru a crea un middleware CheckAge:
Aceasta va crea un nou fișier numit CheckAge.php în directorul app/Http/Middleware/ cu o clasă CheckAge și o metodă
handle():
1 <?php
2
3 namespace App\Http\Middleware;
4
5 use Closure;
6
7 class CheckAge
8 {
9 /**
10 * Handle an incoming request.
11 *
12 * @param \Illuminate\Http\Request $request
13 * @param \Closure $next
14 * @return mixed
15 */
16 public function handle($request, Closure $next)
17 {
18 if($request->age <=200) echo $request->age; //added for tests
19 return $next($request);
20 }
21 }
https://web.ceiti.md/lesson.php?id=17#t4 20/20