Trebuie să recunosc: într-un moment, m-am simțit puțin în limba PHP. Un număr de articole de ură ucigașe din PHP păreau să circule pe Internet ca un virus, iar unele dintre cadrele sale emblematice, cum ar fi CodeIgniter, se înrăutățeau rapid. Cu toate acestea, Ruby on Rails părea să conducă pachetul, din punctul de vedere al inovării și al ușurinței dezvoltării. Odată cu trecerea timpului, m-am trezit tot mai mult pentru centura mea de instrumente Ruby.
Dar, într-o zi, am descoperit un cadru nou, elegant, numit Laravel. La început, l-am respins ca pe o altă clona Sinatra care s-ar diminua repede în nimic, pe măsură ce dezvoltatorul plumb a abandonat-o. Dar, totuși, săptămânal după o săptămână, feedurile mele de rețele sociale erau în plină răscoală, lăudând citirea lui Laravel. "Ar putea fi, am gândit eu," că PHP are în cele din urmă un cadru cu adevărat modern? "
Aflați mai multe despre Laravel la http://laravel.com
Nu mai aveam voie să stau pe margine; a fost timpul să sapă. Un an mai târziu, și eu sunt unul dintre cei mai mari evangheliști ai săi. Laravel face din nou distractiv PHP! Chiar mai bine, nu mai cred că PHP este pentru totdeauna condamnată la cele mai multe site-uri personale și bloguri urât WordPress. nope; de fapt, credem acest scriitor că, datorită lui Laravel, Composer și PHP 5.5, suntem pe cale să experimentăm următoarea renaștere a celei mai populare limbi de pe server.
Pentru a instala cea mai recentă versiune de dezvoltare a Laravel (v4), va trebui să instalați mai întâi Compozitor. Apoi, pur și simplu clona repo, și instalați dependențele.
git clona git: //github.com/illuminate/app.git myApp
șicompozitorul instala
. Ești gata să pleci!
Cei mai mulți dezvoltatori PHP își încep călătoria, introducând nenumărate linii de SQL direct în PHP frigid și necitit. În mod inutil să spunem, excluzând cele mai de bază site-uri web, acest lucru conduce rapid la o dezordine neîncetată.
Amintiți-vă când ați auzit pentru prima oară despre Ruby on Rails 'ActiveRecord? Ei bine, în capătul PHP al lumii, Eloquent este implementarea sa premier.
Aveți nevoie de câteva exemple?
// Retur toate sarcinile $ tasks = Task :: all (); // Returnați sarcina cu un id de 1 $ task = Task :: find (1); // Actualizați o sarcină $ task = Task :: find (1); $ task-> title = 'Pune cookie-ul jos!'; $ Față de sarcini> Salvare (); // Creați o nouă sarcină Task :: create (['title' => 'Scrie articol']); // Șterge o sarcină Task :: find (1) -> delete ();
Oameni, nu este posibil să scrieți mai multe coduri în PHP! Acum ar fi un lucru dacă Eloquent va permite doar să efectuați operațiuni CRUD de bază pe o masă, dar cu siguranță acest lucru nu este cazul.
Luați în considerare relațiile de masă, cum ar fi un utilizator și sarcinile sale respective. În Laravel, după ce am stabilit o metodă de căutare rapidă pentru fiecare model, putem rezolva cu ușurință relația one-to-one sau orice asociație care contează. Iată câteva exemple pentru a vă mânui apetitul.
// Obțineți toate sarcinile autorului cu un id de 1 $ tasks = User :: find (1) -> tasks; // Obțineți autorul unei sarcini $ author = Task :: find (5) -> user () -> nume de utilizator; // Introduceți o nouă sarcină de autor $ task = new Task ([title: 'Go to store']); Utilizator :: găsi (1) -> (sarcini) -> se introduce ($ sarcină);
Nu este o întindere pentru a considera elocventul cea mai bună implementare ActiveRecord în limba PHP.
Instalați Compozitor.
Începând cu Laravel 4 (în prezent în Alpha), întregul cadru va fi modularizat și disponibil ca pachete individuale de compozitori.
Compozitor este un sistem de ambalare pentru PHP care este similar cu PEAR, dar mai bine. Ea face procesul de gestionare a dependenței cât mai ușor posibil.
Gândiți-vă la ecosistemul cadru existent. În momentul de față, sunteți forțat să trăiți cu setul de caracteristici de bază al fiecărui cadru. Nu puteți alege să utilizați, de exemplu, Elocvent într-o aplicație CakePHP. După cum vă puteți imagina, acest adevăr a dus la un proces nebun de reinventare a roții din nou ... și peste.
Doamnelor și domnilor, viitorul PHP este unul modular. De ce să instalați un cadru masiv, masiv, când doriți doar câteva dintre ofertele sale? În curând, nu va trebui. Numai necesită un cuvânt elocvent într-un proiect simplu? Bine - nu este deloc o problemă! Pur și simplu instalați-l prin Composer, și treceți mai departe!
Deci, dacă ne îndreptăm spre o lume PHP mai modulară pe bază de pachete, cum se potrivește Laravel? Ei bine, gândiți-vă la aceasta ca o colecție predeterminată de pachete, înfășurate într-un arc! Chiar mai bine, dacă trebuie să actualizați cea mai recentă versiune a cadrului, este la fel de ușor ca și difuzarea compozitor
.
Ca un exemplu al flexibilității pe care o oferă acest lucru, să adăugăm biblioteca populară de testări Mockery la o aplicație Laravel. Începeți cu un nou proiect Laravel 4 și editați-l composer.json
fișier pentru a solicita Mockery.
"necesită": "iluminare / fundație": "> = 1.0.0", "batjocură / batjocură": "dev-master" app / models "," app / database / migrations "," app / teste / TestCase.php "]
Consultați Packagist.org pentru o listă de pachete Composer disponibile, precum și instrucțiuni de instalare.
Acum că am informat-o pe Compozitor că aplicația noastră necesită Mockery, putem instala dependențele aplicabile.
compozitor
Si asta e! Acum putem folosi batjocoritul în cadrul testelor noastre. Aceasta este puterea compozitorului și Laravel 4 la locul de muncă! Avem roți; să nu mai creați altele noi! Sute de sute de pachete sunt disponibile prin intermediul Packagist.org.
Sute de sute de pachete sunt disponibile prin intermediul Packagist.org.
Rutele
Majoritatea dezvoltatorilor PHP nu sunt familiarizați cu nimic altceva decât cele mai naturale sisteme de rute. Creați un arbore de directoare pentru a se potrivi cu URI-ul dorit și treceți mai departe. De exemplu, adăugați un
index.php
fișier în următorul director:Blog / admin /
, și, acum, îl puteți accesa navigând la:localhost: 8888 / blog / admin / index.php
. Uşor! Ei bine, poate la început; dar probabil veți găsi că aveți nevoie de mai multă flexibilitate și de controlul asupra cărei rute este declanșată în aplicația dvs..Laravel are o abordare incredibil de simplă și ușor de utilizat a rutei. De exemplu, să scriem traseul necesar pentru a afișa o vizualizare pentru profilul unui utilizator.
Route :: get ('users / id', functie ($ id) // gaseste user $ user = User :: find ($ id); // display view ('users.profile') -> cu ('user', $ user););Acum, când un utilizator cere
example.com/users/1
,utilizatorii / profile.php
vizualizarea va fi redată.Alternativ, putem folosi controlorii tradiționali pentru a manipula logica.
Route :: get ('users / id', 'Users @ show');Acum,
Controllers / Users.php
va fi responsabil pentru afișarea vizualizării - în mod specificspectacol
metodă.cu ('utilizator', $ utilizator);
Autentificare ușoară
Aproape orice aplicație web a substanței va necesita o formă de autentificare. Laravel oferă o interfață simplă, dar ușor de utilizat, pentru autentificarea utilizatorilor.
Începeți prin a crea un
utilizatori
tabel cu câmpurile necesare pentrunume de utilizator
șiparola
. Amintiți-vă: acesta este un caz de utilizare perfectă pentru o migrare!Laravel poate atunci
atentat, încercare
pentru a vă conecta un utilizator - probabil pe baza valorilor furnizate de utilizator dintr-un formular.Iată un exemplu de bază, minus aspectul de validare.
Route :: post ('login', function () $ credentials = array ('username' => Intrare :: get ('username'), 'password' / efectuați validarea dacă (Auth :: attempt ($ credentials)) // Credentials match.Rețineți că, în spatele scenei, Laravel va elimina automat parola furnizată și o va compara cu ceea ce este stocat în
utilizatori
masa.Presupunând că datele de conectare ale utilizatorului se potrivesc, ID-ul de utilizator va fi stocat în sesiune și utilizatorul va fi conectat. După solicitările ulterioare, puteți lua numele de utilizator al utilizatorului conectat în prezent cu:
$ user = Auth :: user () -> nume de utilizator;
Trimiterea e-mailului
Recunoașteți: trimiterea de e-mail prin intermediul aplicației dvs. este întotdeauna mai complicată decât ar trebui să fie. Nu mai este în Laravel 4!
Construit pe partea de sus a pachetului popular SwiftMailer, veți găsi acum un nou produs
config / mail.php
fișier în cererea dumneavoastră. Aici puteți specifica acreditările necesare furnizorului dvs. de servicii de e-mail. Iată o versiune descurajată a ceea ce veți găsi:'smtp.example.com', 'port' => 2525, 'din' => array ('adresa' => null, 'name' => null), 'encryption' => > null, "parola" => null,);Pur și simplu înlocuiți valorile cu cele de pe serverul dvs. de e-mail, în consecință.
Apoi, avem nevoie de o vizualizare pentru e-mail. Să creăm unul, numit
welcome.blade.php
, care va fi folosit atunci când un nou membru se înregistrează pentru site-ul nostru fan Justin Bieber.Bună acolo, $ user-> name. Vă mulțumim din nou pentru înscrierea pentru cele mai recente știri ale lui Justin Bieber! Așteptăm cu nerăbdare să vă vedem pe aici. Mulțumesc, conducere