15
AVR

Lumen - Le micro-framework PHP développé par Laravel

Publié le 15/04/15 à 09h17 par DJo

Après Symfony avec Silex, voici Lumen, le micro-framework PHP développé sur les bases de composants Laravel.

Après Symfony avec Silex, voici Lumen, le micro-framework PHP développé sur les bases de composants Laravel.

Dans la même lignée que les micro-frameworks PHP comme Silex et Slim 3, Lumen propose une version allégée et efficace du framework Laravel.

Le but de Lumen est de proposer une structure avec les composants Laravel, mais sans la couche configuration et personnalisation avancée du framework complet.

Il permet ainsi de grapiller encore quelques microsecondes de performance, et annonce une capacité de 1900 requêtes par secondes (à prendre avec des pincettes... A vérifier avec un projet réaliste), contre 1000 pour Silex et 1300 pour Slim 3.

 

Quand utiliser un microframework PHP comme Lumen ?

Sa principale utilisation sera plutôt orientée sur le développement de micro-services et API:

Par exemple, si une partie de votre site reçoit plus de hits que le reste, peut être qu'il sera préférable de passer cette partie sur Lumen afin de réduire la consommation serveur et ainsi baisser vos coûts AWS...

Idéal aussi pour le développement d'API REST JSON qui ne nécessitera pas de gestion de templates, cookies, session... 

A contrario, si vous souhaitez utiliser des packages Laravel, utiliser le routing Symfony2 plutôt que le routing fast-route, modifier le framework ou faire de la config avancée, il faudra dans ce cas partir sur le framework complet.

 

Quels sont les composants Laravel embarqués dans Lumen ?

La plupart des composants Laravel sont utilisés dans Lumen, on retrouve par exemple:

  • Blade Templating
  • Caching
  • Command Scheduler
  • Controllers
  • Eloquent ORM
  • Error Handling
  • Database Abstraction
  • Dependency Injection
  • Logging
  • Queued Jobs

Ce qui vous permettra de facilement passer de Lumen à Laravel si votre projet prend de l'ampleur ou si Lumen ne vous suffit plus. Un simple copié collé des sources et c'est prêt !

 

prérequis et installation de Lumen

Les composants sont basés sur Laravel 5.x. Il vous faudra au minimum PHP 5.4 et les extensions PHP Mcrypt, OpenSSL, Mbstring et Tokenizer.

Pour installer Lumen, 2 options s'offrent à vous:

Via Composer: 

composer create-project laravel/lumen --prefer-dist

Ou à l'aide de l'installeur Lumen:

composer global require "laravel/lumen-installer=~1.0"
lumen new service

 

Un exemple basique d'utilisation de Lumen

Voici un exemple de création de Contrôleur avec Lumen ainsi que le binding de la route associée:

<?php namespace App\Http\Controllers;
use App\User;
use App\Http\Controllers\Controller;
class UserController extends Controller {
    /**
     * Show the profile for the given user.
     *
     * @param  int  $id
     * @return Response
     */
    public function showProfile($id)
    {
        return view('user.profile', ['user' => User::findOrFail($id)]);
    }
}

Et la route:

$app->get('user/{id}', 'UserController@showProfile');

 

La documentation est déjà bien complète et accompagnée d'exemple parlant, vous n'aurez aucun mal à prendre en main Lumen surtout si vous êtes déjà accroc à Laravel!

 

Site Officiel

Baraguiné par daZop le 06/05/15 à 10h28
daZop sur La Ferme du Web
Laravel est un piège. Si le site de Lavarel est très flashy, et séduit beaucoup de nouveaux venus en PHP, la vérité est que ce framework est très incomplet. Par exemple : il n'intègre pas le pattern Observer.

Il ne permet donc pas de travailler sérieusement, et de développer des projets complexes de bout en bout, rendant obligatoire l'apprentissage d'un autre "gros" framework comme Symfony ou Zend. Bref : Laravel est une perte de temp.

Quitte à apprendre un framework léger, rapide, et facile à prendre en main, il vaut bien mieux se concentrer sur YII, dont la version 2 vient de sortir. Certes, leur site est plus austère, et la communauté francophone moins importante, mais le framework est beaucoup plus complet : il intègre la majorité des patterns. Avec Yii, il est possible de faire des projets complexe de bout en bout, sans avoir à passer à un framework plus gros. (Un site comme VICE utilise Yii.)

Bref : si vous hésitez à vous mettre à Laravel, essayez plutôt Yii. Perso, je prédis à Laravel le même futur à Cake PHP.
Baraguiné par le 12/05/15 à 14h55
Déconseiller Laravel pcq "il utilise pas le design pattern observer" est ridicule ! Laravel utilise les événements qu'on peut déclencher à tout moment donc je ne vois vraiment pas en quoi c'est limité. Avec Laravel il est tout à fait possible de réaliser des projets très complexes, sans passer par une usine à gaz comme Zend. Par ailleurs la plupart des gens n'ont pas des projets extrêmement compliqués à réaliser et Laravel convient parfaitement, tout en ayant une courbe d'apprentissage bien plus intéressante.
Baraguiné par michgeekdev le 28/05/15 à 23h57
michgeekdev via Twitter
@daZop Laravel n'utilise pas le pattern Observer ? Il faut revoir votre culture technique. Observer, appelé également Publish/Suscribe ou encore Event/Listener est des piliers de Laravel. C'est utilisé partout dans le framework. Dire que ce framework est incomplet est une blague. Merci d'apporter plus d'arguments.

Ajouter un Commentaire

Pour poster un commentaire, vous devez être identifié. Vous pouvez choisir parmi ces trois méthodes d'identification:

Compte la Ferme du Web

Identifiez-vous
Inscrivez-vous

Compte Facebook

Connexion avec Facebook

Compte Twitter

Connexion avec votre compte twitter
Rechercher sur la Ferme du web