Lumen est un nouveau micro-framework PHP développé par l'auteur du framework Laravel, Taylor Otwell. Ne vous inquiétez pas, bien que Lumen ne soit pas destiné à remplacer Laravel. En fait, l’idée de Lumen est qu’elle complète vos applications Laravel existantes ou futures..
Taylor Otwell a développé Lumen avec des objectifs très spécifiques, à savoir les microservices et les API. Brièvement, un microservice est un processus plus petit et découplé qui communique avec une application plus grande, par ex. notre application Laravel.
Dans cet article, je souhaite expliquer ce qui est différent dans Lumen, à savoir quand utiliser Lumen et comment utiliser Lumen. Nous expliquerons également comment nous pouvons utiliser notre application Lumen et la migrer facilement vers une application Laravel à pile complète. Il n'y aura pas beaucoup de code, Lumen étant très similaire à Laravel. Commençons.
Ce sera probablement la première question que beaucoup d'entre vous se poseront. En réalité, pas grand-chose n'est réellement "nouvelle" avec Lumen en dehors de la colle. Lumen utilise toujours la plupart des composants Illuminate qui composent le framework Laravel (il en manque seulement un couple). Pensez-y comme une installation simplifiée de Laravel.
Son objectif est d’optimiser les performances. Pour obtenir cette augmentation, plusieurs changements ont été apportés. Les plus importants d'entre eux sont les suivants:
config
répertoire dans une installation Lumen. Au lieu de cela, vous utiliserez le .env
fichiers pour configurer la plupart de votre application.Il y a quelques compromis ici. FastRoute est une implémentation très rapide, mais elle n’est pas aussi riche en fonctionnalités que le routeur Symfony. Si vous souhaitez utiliser le routage de sous-domaine, vous devrez vous en tenir à une installation de Laravel qui utilise le routeur Symfony..
L’autre compromis à noter est que, pour un contrôle plus précis de la configuration de certains composants, vous devez modifier les fichiers de configuration dans vendeur / laravel / lumen-framework
annuaire. La majorité de la configuration peut être faite à travers le .env
fichiers, mais certaines choses moins configurées ne sont pas directement configurables.
La réponse ici dépendra, mais probablement pas. Si vous développez ou avez développé une application sur Laravel (4 ou 5), vous n'aurez probablement pas besoin de passer à Lumen dès maintenant. Bien que Lumen soit capable de développer une application Web complète, il convient mieux aux services et aux API découplés plus petits..
Je ne peux pas vous dire quand vous pouvez et ne pouvez pas utiliser un framework disponible. Je ferai cependant quelques recommandations sur le moment où vous pourriez envisager d’utiliser Lumen pour une partie de votre prochain projet..
Supposons que vous construisez une grande application de boutique en ligne. Vous devez donc installer Laravel et travailler sur une application monolithique. Maintenant, il n’ya rien de mal à cette approche, et vous pouvez trouver que cela fonctionne très bien pour vous. Si oui, continuez. Si vous constatez que vous devenez submergé par la complexité ou que les choses semblent devenir un peu incontrôlables, vous pouvez les diviser en plusieurs éléments plus petits et plus faciles à gérer..
Vous utiliseriez Lumen pour créer des applications distinctes pour chaque service découplé. Pour notre boutique, nous pourrions séparer la facturation, les notifications par courrier électronique, les envois et le suivi pour des applications distinctes. Chacune de ces applications serait une installation autonome de Lumen et chaque application effectuerait uniquement une tâche spécifique..
Pour permettre à notre application principale de communiquer avec nos services découplés, nous utilisions des files d'attente et un service comme Amazon SQS. Nous pouvons utiliser des files d'attente pour mettre facilement des travaux en file d'attente, et chaque service écoute ses travaux particuliers et les traite pendant leur mise en file d'attente. L'avantage de cette approche est que chaque service peut être mis à l'échelle et déployé indépendamment l'un de l'autre..
Vous pouvez également utiliser Lumen pour créer une API qui pourrait également être utilisée par votre application principale à l’aide d’un client HTTP tel que Guzzle. Ce découplage vous permet d’adapter et d’optimiser l’aspect métier de votre application sans interférer avec le reste.
A présent, vous devriez avoir une bonne idée de savoir si utiliser Lumen est la bonne solution pour vous. L’installation de Lumen est aussi simple que l’installation de Laravel: une solution simple compositeur créer-projet
commande, ou vous pouvez installer le lumen
commande pour créer de nouveaux projets. Nous allons simplement utiliser Composer pour récupérer une nouvelle installation.
compositeur créer-projeter laravel / lumen LumenProject --prefer-dist
Compositeur va descendre toutes les dépendances. Vous pouvez utiliser Artisan pour afficher rapidement l'application, ou configurer un site pour hôte virtuel ou Homestead. Dans tous les cas, une fois que vous avez atteint le chemin de votre installation Lumen, la page de démarrage brillante vous indique que Lumen est prêt à l'emploi..
La configuration est tout fait dans le .env
fichiers, de sorte que vous voulez soit renommer le .env.example
déposer ou copier son contenu dans un nouveau fichier.
Le reste de l’amorçage dont vous voulez être au courant se trouve dans la bootstrap / app.php
fichier. Si vous utilisez le .env
configuration mentionnée ci-dessus alors vous voudrez décommenter Dotenv :: load (__ DIR __. '/… /');
. En parcourant ce fichier, vous verrez plusieurs lignes commentées que vous voudrez peut-être supprimer. Il y a le chargement des façades, Eloquent, certains middlewares et l'enregistrement d'autres fournisseurs de services.
Vous avez maintenant une copie de Lumen fraîchement installée et configurée, prête à construire quelque chose d'extraordinaire.
Vous êtes peut-être en train de créer votre application Lumen et tout se passe bien, jusqu'au jour fatidique où vous réaliserez que vous avez besoin de quelque chose que seul le cadre complet de Laravel offre. Ne vous inquiétez pas, car il s’agit d’une mise à niveau extrêmement simple. Voici les étapes à suivre:
app
annuaire. Sachez que vous aurez peut-être besoin de quelque chose du L5 app
répertoire, tels que les fournisseurs.config
annuaire.Cela devrait constituer l'essentiel de ce que vous devez copier pour migrer votre application Lumen vers Laravel. Bien sûr, cela fonctionne dans les deux sens, vous pouvez donc facilement migrer une application Laravel vers Lumen si vous réalisez que vous n'avez pas besoin de tout ce que le framework full-stack offre..
Pour conclure, je tiens simplement à souligner que je préconise l’utilisation de Lumen principalement pour les services découplés et les API, qui est son utilisation prévue. Cela ne veut pas dire que vous ne pouvez pas créer une application complète sur Lumen, vous le pouvez. Si vous choisissez de le faire, c'est bien. Aucune règle gravée dans une tablette de pierre ne vous dit ce que vous pouvez et ne pouvez pas utiliser pour vos projets. En fin de compte, c'est à vous de décider. Pesez vos options, planifiez votre projet, décidez de ce dont vous aurez besoin, consultez votre équipe, puis prenez votre décision finale.