Maison >développement back-end >tutoriel php >Comparaison des frameworks PHP Slim et Flight
Sur les réseaux sociaux, les nouveaux développeurs PHP demandent souvent « Quel framework dois-je utiliser pour mon projet » et généralement les réponses données sont « Laravel » ou « Symfony ».
Bien qu'il s'agisse de deux bonnes options, la bonne réponse à cette question devrait être « Que devez-vous faire avec le framework ? »
Le bon framework doit être celui qui fait ce dont vous avez besoin, sans de nombreuses fonctionnalités que vous n'utiliserez jamais.
Si vous créez un site Web avec une seule route, utiliser Laravel ou Symfony reviendrait à sur-ingénierier le site, tandis que pour un site complexe, Laravel ou Symfony peuvent être le bon choix.
Les micro-frameworks sont parfaits pour créer des sites de petite et moyenne taille qui n'ont pas besoin de toutes les fonctionnalités fournies par un framework full stack.
Bien qu'il en existe de nombreux, Slim et Flight PHP sont tous deux d'excellents exemples de micro-frameworks.
Récemment, j'ai créé un petit site Web qui demande à l'utilisateur de résoudre 10 questions liées à la base de données. Il comportait trois itinéraires et quelques requêtes de base pour récupérer les questions et comparer les réponses.
Pour un petit projet comme celui-ci, un micro-framework est un excellent choix. J'ai construit le site sur Slim et Flight PHP pour les comparer.
Si vous n'avez jamais utilisé un framework particulier auparavant, l'utilisation du projet squelette fourni est généralement un excellent point de départ.
Le projet squelette Flight PHPs correspond à peu près à ce à quoi je m'attendais, léger, configuration MVC simple, facile à comprendre la structure des dossiers et à savoir où tout doit aller dans le projet.
Pour quelqu'un qui découvre le framework, la courbe d'apprentissage pour être opérationnel est minime.
Léger sur les bibliothèques de compositeur, seulement 5 au total (y compris la bibliothèque principale), 4 utilisées en production.
La taille de production du Skeleton était de 1,6 Mo.
Le projet squelette Slims m'a surpris, la structure des répertoires était plus complexe que ce à quoi je m'attendais. Plus orienté vers une structure pouvant être utilisée dans un projet plus vaste que dans un petit projet. Pour un micro-framework, cela n'était pas prévu.
Le squelette Slim était un peu plus lourd que Flight PHP. 21 bibliothèques de compositeurs, 9 utilisées en production. La taille de production du projet était de 3,3 Mo.
Les deux ont fonctionné immédiatement avec une configuration supplémentaire minimale nécessaire.
Au lieu d'utiliser les squelettes, j'ai décidé de construire les sites en créant ma propre configuration. L'avantage de procéder ainsi est que j'ai pu adapter les cadres à mes besoins et voir à quel point ils étaient flexibles pour différentes structures.
L'un des grands avantages de l'utilisation de micro-frameworks est de pouvoir les créer pour faire exactement ce dont vous avez besoin sans surcharge inutile, en ajoutant des fonctionnalités et des bibliothèques au fur et à mesure qu'elles deviennent nécessaires.
Ma configuration avec Flight PHP n'était pas significativement différente du squelette. Même si je me suis retrouvé avec moins de répertoires et différentes bibliothèques de composition, structurellement, elle était similaire.
Avec Slim, la structure du projet s'est finalement révélée très différente du squelette.
C'était bien que Slim soit flexible et ne fasse pas d'hypothèses sur la structure et fonctionne très bien avec une structure complètement différente de celle du squelette.
Flight PHP est également flexible de cette manière, permettant des structures plus complexes si nécessaire, l'ajout de nouvelles bibliothèques dans le framework était simple.
Routage
D'un point de vue routage, il était agréable de travailler avec les deux. Ils étaient tous deux faciles à mettre en place sans nécessiter beaucoup de lecture de documentation.
Routes in Flight PHP était légèrement plus simple à configurer que Slim et utilisait moins de code pour le faire, mais aucun n'était difficile à configurer.
Les groupes de routage, les capacités d'expression régulière et les options de middleware ont rendu les itinéraires flexibles tout en restant faciles à utiliser.
Connexions à la base de données
Avec Slim, on s'attend à ce que vous utilisiez un ORM comme Eloquent ou Doctrine pour vos requêtes de base de données, alors que Flight PHP fournit un simple wrapper pour PDO qui peut être utilisé si vous devez et éventuellement, Active Record peut être ajouté au projet pour la création de requêtes.
Pour un petit projet comme celui sur lequel je travaillais, utiliser un ORM semblait être un peu plus que nécessaire, j'ai donc fini par créer une petite classe wrapper PDO pour Slim, similaire à celle intégrée à Flight PHP. .
Les ORM sont excellents, mais avoir la flexibilité intégrée pour choisir la façon dont je souhaite coder les requêtes de base de données est une bonne fonctionnalité.
Codage général
Les frameworks PHP Slim et Flight vous permettent tous deux d'écrire du code à votre manière.
Certains frameworks ont tendance à vous forcer à coder d'une manière spécifique et vous pouvez parfois avoir l'impression de vous battre contre le framework.
Les frameworks devraient fonctionner avec vous et non contre vous, et les deux avaient l'impression de travailler avec moi.
Slim fournit également un certain nombre de modules complémentaires pratiques, notamment l'intégration CSRF et la mise en cache HTTP.
Flight PHP fournit des modules complémentaires supplémentaires, notamment les autorisations et l'enregistrement actif.
Tous ces modules complémentaires sont des ajouts utiles sans avoir à utiliser des solutions tierces ou à créer les vôtres.
Renvoyer JSON comme réponse est plus propre dans Flight PHP que dans Slim, Slim 3 avait une réponse withJson pratique. Bien que Slim 4 adhère davantage au PSR-7, cela signifie que la création de la réponse JSON nécessite plus de code.
Si je devais beaucoup utiliser les réponses JSON, je créerais probablement un wrapper pour le rendre plus pratique tout en respectant la norme PSR-7.
Il s'agit d'une différence significative entre les deux frameworks, Slim a l'impression qu'il doit être davantage adapté en créant des classes pour nettoyer et simplifier la base de code, tandis que Flight PHP l'a déjà fait pour vous.
Slim fournit un certain nombre de middlewares d'assistance. Le middleware est requis pour faire fonctionner certaines fonctionnalités.
Un exemple de ceci est la récupération de données à partir de Javascript à l'aide de FETCH. Slim dispose d'une méthode getParsedBody pour créer un tableau de données à partir de la requête POST.
Cependant, pour pouvoir l'utiliser, addBodyParsingMiddleware doit être ajouté au conteneur.
C'est un peu un piège pour les nouveaux développeurs, mais cela donne également accès à des fonctionnalités facultatives, qui peuvent réduire l'empreinte globale du framework en activant uniquement les fonctionnalités dont vous avez besoin.
Flight PHP y parvient grâce à un fichier de configuration, certaines fonctionnalités peuvent être activées et désactivées via la configuration plutôt que via l'activation du middleware.
Tests de vitesse
Selon les benchmarks, la comparaison des deux donne des résultats intéressants, Slim devance Flight PHP dans certains domaines tandis que Flight PHP devance Slim dans d'autres domaines.
Le test des deux frameworks sur mon propre code a montré que Flight PHP avait des temps de réponse plus rapides et plus cohérents que Slim.
Front-End
Demande GET renvoyant JSON
Requête POST renvoyant JSON
Ce que j'ai trouvé remarquable, ce sont les pics aberrants lors de l'utilisation de Slim.
L'exécution de ces tests plusieurs fois a produit à chaque fois des résultats similaires à ceux que j'ai montrés ci-dessus, avec des temps de réponse généralement bons pour les deux, mais avec des pics aberrants dans Slim qui ne se sont pas produits lors du test de Flight PHP, et Flight PHP ayant généralement de meilleurs résultats. délais de réponse.
Si vous ne vous êtes pas aventuré dans les micro-frameworks, essayez-les, il y en a quelques-uns et cela peut être une excellente expérience d'apprentissage de les essayer et de voir ce que vous aimez et ce que vous n'aimez pas dans chacun. un.
Slim et Flight PHP sont d'excellents micro-frameworks.
Slim est un framework solide avec quelques fonctionnalités intéressantes, qui fonctionneront silencieusement pour vous.
Flight PHP est plus léger et sa simplicité rend l'apprentissage du framework vraiment facile.
De bons temps de réponse et un code plus simplifié pour obtenir le même résultat en font un très bon choix pour un micro-framework à utiliser.
Après avoir mis ces deux côte à côte, je préfère Flight PHP à Slim, mais comme pour tout framework, essayez-le et voyez si cela fonctionne pour vous.
Après tout, le bon framework est un framework qui fait ce dont vous avez besoin.
Vol PHP
Cadre mince
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!