Laravel 4: quoi de neuf?

Laravel 4: à quoi s’attendre?

Vous ne connaissez pas Laravel? C’est un framework PHP (encore un) qui est plutôt jeune (né en juin 2011) mais qui est très attractif. Pourquoi? Parce que c’est un framework expressif, simple et accessible. Il offre de nombreuse fonctionnalités natives telles qu’un ORM (eloquent), les migations, un moteur de template (blade), un système d’authentification très simple, on peut aussi l’utiliser pour faire du REST.

Donc quoi de neuf avec Laravel4? Cette nouvelle mouture a été complètement remodelée. Les éléments du core on été séparés en composants ayant chacun un dépôt sur Github le tout appelé « Illuminate« . Cela permet une mise à jour continue à la debian (rolling release), une intégration à composer (l’agrégateur de dépôt de librairie pour PHP). Et donc une maintenance plus facile pour les contributeurs. Ils peuvent se concentrer sur un composant et n’ont pas à comprendre comment les autres fonctionnent. Ainsi une mise à jour de Laraval sera aussi simple qu’une commande: composer update.
Ces composants possèdent tous des test unitaires ce qui garantit un code fonctionnel et pérenne pour vos applications.

On pourra aussi gérer les mises à jour en bloquant les mises à jour sur certains composants très facilement. De la même manière, les bundles (librairies faites par des contributeurs offrant des fonctionnalités) seront accessibles via composer.

De plus le code de Laravel a été revu de manière à passer du « tout static » à du « tout dépendance injecté ».
Par exemple lorsque l’on souhaite obtenir une variable en session on fait ceci:
$var = Session::get('foo');
Or avec Laravel 4 ce qui se passe réellement c’est l’utilisation d’une « façade » qui en fait exécute ceci:
$app->resolve('session')->get('foo');

La « façade » de la session indique simplement à l’application comment la session est enregistrée dans le conteneur IoC. Avec Laravel 4, toute l’application est un conteneur. La déclaration de la class ressemble à « l’Application étend le conteneur ». De cette manière lorsque l’application charge la session on peut y faire toutes sortes d’injections tout en gardant une class très testable.
Les développeurs peuvent ainsi réécrire comment la session est traitée, ce qui offre à Laravel plus de flexibilité, de possibilités d’extension et de test/validation du code.

Concernant les nouvelles fonctionnalités apportées on trouvera:

les collections avec Eloquent (l’ORM): lorsque l’on chargera une collection d’objet via un get ou via une relation 1 à plusieurs, ou plusieurs à plusieurs, Laravel implémentera l’interface « IteratorAggregate » ce qui booste la rapidité et offre plus de possibilités commme :
$user->friends->json();

Une console améliorée: la console a été construite au-dessus du composant de Symfony, ce qui signifie que toutes les commandes offrent des écrans d’aide, de la couleur et plus d’interactions homme-machine.

Composer: comme dit précédemment, les librairies seront dorénavant disponibles via composer puisque le cœur de l’application y sera.

Un meilleur support des emails

le système de vue sera géré par des drivers: il sera possible d’utiliser Twig, Lex ou autre, en gardant la syntaxe View::make. Blade restera le moteur de template par défaut.

Une intégration avec les sytème de stockage cloud: il sera possible d’enregistrer des données sur le cloud grâce à du code comme :
Cloud::put('foo', $data);

Laravel 4 sera disponible quand ca sera fini! On peut penser à une version beta début 2013.

En savoir plus: Illuminating the future. What’s next?

La communication et le conseil

Nous mettons à votre disposition nos années d’expérience chez les leaders de l'internet pour mettre en place avec vous une plateforme internet vous propulsant vers une nouvelle phase de croissance.

Plus d'info »

Notre vision

Notie, une agence web qui vous écoute, vous conseille et vous accompagne tout au long de votre développement sur internet en privilégiant des relations basées sur la confiance et l’honnêteté.

Plus d'info »

Nos outils

Nous nous engageons à concevoir des pages web optimisées pour les moteurs de recherche et respecter les recommandations définies par le W3C. Pour cela, nous utilisons toute une palette d'outils.

Plus d'info »