Ik moet toegeven: op een gegeven moment voelde ik een beetje een beetje op de PHP-taal. Een aantal aangrijpende artikelen met PHP-haat cirkelden rond het web als een virus en sommige van zijn vlaggenschipraamwerken, zoals CodeIgniter, werden snel oudbakken. Al die tijd leek Ruby on Rails de koploper te zijn in termen van innovatie en ontwikkelgemak. Naarmate de tijd verstreek, merkte ik dat ik steeds meer naar mijn Ruby toolbelt ging zoeken.
Maar toen ontdekte ik op een dag een nieuw, elegant kader, genaamd Laravel. Aanvankelijk wees ik het af als nog een andere Sinatra-kloon die snel in het niets zou verdwijnen, omdat de hoofdontwikkelaar het had verlaten. Maar toch, week in week uit, waren mijn feeds op het sociale netwerk in een stroomversnelling en prezen Laravel's leesbaarheid. "Zou het kunnen zijn," dacht ik bij mezelf, "dat PHP eindelijk een echt modern kader heeft?"
Meer informatie over Laravel op http://laravel.com
Ik was niet langer bereid om aan de zijlijn te gaan zitten; het was tijd om in te graven. Een jaar later, en ik ben een van de grootste evangelisten. Laravel maakt PHP opnieuw leuk! Sterker nog, ik geloof niet langer dat PHP voor altijd gedoemd is om voornamelijk persoonlijke sites en lelijke WordPress-blogs te zijn. Nee; in feite is het de mening van deze schrijver dat we, dankzij Laravel, Composer en PHP 5.5, de volgende renaissance van de meest populaire server-side taal van het web zullen ervaren.
Als u de nieuwste ontwikkelversie van Laravel (v4) wilt installeren, moet u eerst Composer installeren. Kopieer vervolgens de repo en installeer de afhankelijkheden.
git clone git: //github.com/illuminate/app.git myApp
encomponist installeren
. Je bent klaar om te gaan!
De meeste PHP-ontwikkelaars beginnen hun reis door ontelbare SQL-regels direct in hun ijskoude, onleesbare PHP te nestelen. Onnodig te zeggen, met uitzondering van de meest elementaire websites, leidt dit al snel tot een onmogelijke puinhoop.
Weet je nog dat je voor het eerst over ActiveRecord van Ruby on Rails hoorde? Welnu, in het PHP-einde van de wereld is Eloquent de eerste implementatie.
Heb enkele voorbeelden nodig?
// Haal alle taken op $ tasks = Task :: all (); // Haal de taak op met een ID van 1 $ task = Task :: find (1); // Update een taak $ task = Task :: find (1); $ task-> title = 'Zet die cookie neer!'; $ Taak-> save (); // Maak een nieuwe taak aan Taak :: create (['title' => 'Write article']); // Een taak verwijderen Taak: find (1) -> delete ();
Mensen, het is niet mogelijk om meer leesbare code te schrijven in PHP! Nu zou het één ding zijn als Eloquent je alleen toestond om basis CRUD-bewerkingen op een tafel uit te voeren, maar dat is zeker niet het geval.
Overweeg tabelrelaties, zoals een gebruiker en zijn / haar respectieve taken. In Laravel kunnen we, na het instellen van een snelle opzoekmethode voor elk model, gemakkelijk een-op-een relatie of een andere associatie voor die kwestie aan. Hier zijn een paar voorbeelden om je eetlust te wekken.
// Verkrijg alle taken van de auteur met een id van 1 $ tasks = User :: find (1) -> tasks; // Haal de auteur van een taak $ author = Task :: find (5) -> user () -> username; // Voeg een nieuwe taak in door de auteur $ task = new Task ([title: 'Go to store.']); Gebruikers :: find (1) -> taken () -> invoegen ($ taak);
Het is geen reden om Eloquent te beschouwen als de beste ActiveRecord-implementatie in de PHP-taal.
Composer installeren.
Beginnend met Laravel 4 (momenteel in Alpha), zal het gehele framework worden gemodulariseerd en beschikbaar als individuele Composer-pakketten.
Composer is een verpakkingssysteem voor PHP dat vergelijkbaar is met PEAR, maar dan beter. Het maakt het proces van afhankelijkheidsmanagement zo eenvoudig mogelijk.
Denk aan het bestaande framework-ecosysteem. Op dit moment word je gedwongen om te leven met de kernfuncties van elk framework. Je kunt er niet voor kiezen om Eloquent in een CakePHP-toepassing te gebruiken. Zoals je je kunt voorstellen, heeft deze waarheid geleid tot een krankzinnig proces waarbij het wiel telkens opnieuw en opnieuw wordt uitgevonden.
Dames en heren, de toekomst van PHP is modulair. Waarom zou je een opgeblazen massief kader installeren als je maar een paar van zijn aanbiedingen nodig hebt? Welnu, binnenkort zal dat niet meer gebeuren. Eloquent alleen nodig hebben in een eenvoudig project? Prima - helemaal geen probleem! Installeer het eenvoudig via Composer en ga verder!
Dus, als we naar een meer pakket-gebaseerde, modulaire PHP-wereld verhuizen, hoe past Laravel dan in? Beschouw het als een vooraf bepaalde verzameling pakketten, verpakt in een boog! Sterker nog, als u moet updaten naar de nieuwste versie van het framework, is het net zo eenvoudig als hardlopen update van de componist
.
Laten we als voorbeeld van de flexibiliteit die dit biedt, de populaire Mockery-testbibliotheek toevoegen aan een Laravel-toepassing. Begin met een nieuw Laravel 4-project en bewerk het composer.json
bestand om Mockery te vereisen.
"require": "illuminate / foundation": "> = 1.0.0", "mockery / mockery": "dev-master", "autoload": "classmap": ["app / controllers", " app / modellen "," app / database / migraties "," app / tests / TestCase.php "]
Raadpleeg Packagist.org voor een lijst met beschikbare Composer-pakketten, evenals installatie-instructies.
Nu we Composer hebben laten weten dat onze toepassing Spot nodig heeft, kunnen we de toepasselijke afhankelijkheden installeren.
update van de componist
En dat is het! We kunnen nu Mockery gebruiken in onze tests. Dit is de kracht van Composer en Laravel 4 op het werk! We hebben wielen; laten we stoppen met het maken van nieuwe! Honderden honderden pakketten zijn beschikbaar via Packagist.org.
Honderden honderden pakketten zijn beschikbaar via Packagist.org.
routes
De meeste beginnende PHP-ontwikkelaars zijn niet bekend met iets anders dan de meest natuurlijke routesystemen. Maak een directorystructuur die overeenkomt met de gewenste URI en ga verder. Voeg bijvoorbeeld een toe
index.php
bestand naar de volgende map:blog / admin /
, en nu kunt u het openen door te bladeren naar:localhost: 8888 / blog / admin / index.php
. Gemakkelijk! Nou, misschien in het begin; maar u zult waarschijnlijk merken dat u meer flexibiliteit en controle nodig heeft over welke route in uw toepassing wordt geactiveerd.Laravel neemt een ongelooflijk eenvoudige en gemakkelijk te gebruiken benadering van routering. Laten we als voorbeeld de benodigde route schrijven om een weergave voor het profiel van een gebruiker weer te geven.
Route :: get ('users / id', function ($ id) // vind de user $ user = User :: find ($ id); // display view, en pass user object return Bekijk: make ('users.profile') -> met ('user', $ user););Nu, wanneer een gebruiker vraagt
example.com/users/1
, degebruikers / profile.php
weergave wordt weergegeven.Als alternatief kunnen we traditionele controllers gebruiken om de logica te verwerken.
Route :: get ('users / id', 'Users @ show');Nu,
Controllers / Users.php
zal verantwoordelijk zijn voor het weergeven van het beeld, met name hetlaten zien
methode.met ('gebruiker', $ gebruiker);
Gemakkelijke authenticatie
Bijna elke webtoepassing van substantie zal enige vorm van authenticatie vereisen. Laravel biedt een eenvoudige, maar eenvoudig te gebruiken interface voor authenticatie van gebruikers.
Begin met het maken van een
gebruikers
tabel met de nodige velden voor degebruikersnaam
enwachtwoord
. Let op: dit is een perfecte use-case voor een migratie!Laravel kan dan
poging
om een gebruiker aan te melden - waarschijnlijk gebaseerd op door de gebruiker geleverde waarden van een formulier.Hier is een eenvoudig voorbeeld, minus het validatieaspect.
Route :: post ('login', function () $ credentials = array ('gebruikersnaam' => Input :: get ('gebruikersnaam'), 'wachtwoord' => Input :: get ('wachtwoord')); / / voer validatie uit als (Auth :: poging ($ inloggegevens)) // Inloggegevens overeenkomen met ingelogd! return Redirect :: to ('admin / profile'););Merk op dat, achter de schermen, Laravel automatisch het opgegeven wachtwoord hasht en vergelijkt met wat is opgeslagen in de
gebruikers
tafel.Ervan uitgaande dat de inloggegevens van de gebruiker overeenkomen, wordt de gebruikers-ID opgeslagen in de sessie en wordt de gebruiker aangemeld. Bij volgende aanvragen kunt u de gebruikersnaam van de momenteel aangemelde gebruiker ophalen met:
$ user = Auth :: user () -> gebruikersnaam;
Email verzenden
Geef toe: het verzenden van e-mail via uw applicatie is altijd ingewikkelder dan het zou moeten zijn. Niet meer in Laravel 4!
Gebouwd bovenop het populaire SwiftMailer-pakket, vindt u nu een nieuw
config / mail.php
bestand in uw applicatie. Hier kunt u de benodigde inloggegevens voor uw e-mailprovider opgeven. Hier is een uitgeklede versie van wat u zult vinden:'smtp.example.com', 'port' => 2525, 'from' => array ('address' => null, 'name' => null), 'encryption' => 'tls', 'username' = > null, 'wachtwoord' => null,);Vervang eenvoudig de waarden door die van uw e-mailserver.
Vervolgens hebben we een weergave voor de e-mail nodig. Laten we er een maken, genaamd
welcome.blade.php
, die wordt gebruikt wanneer een nieuw lid zich registreert voor onze Justin Bieber-fansite.Hallo daar, $ user-> naam. Nogmaals bedankt voor het aanmelden voor het laatste Justin Bieber-nieuws! We zien er naar uit om je weer te zien. Bedankt, management