Maison  >  Article  >  développement back-end  >  Comparaison des frameworks PHP Slim et Flight

Comparaison des frameworks PHP Slim et Flight

DDD
DDDoriginal
2024-09-14 10:22:45391parcourir

Pourquoi utiliser un micro framework ?

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.

Squelettes

Si vous n'avez jamais utilisé un framework particulier auparavant, l'utilisation du projet squelette fourni est généralement un bon 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.

Construire à partir de zéro

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.

Le code

Routage

Du point de vue du 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.

Frameworks는 당신과 반대되는 것이 아니라 당신과 함께 일해야 하며, 둘 다 나와 함께 일하는 것처럼 느껴졌습니다.

Slim은 CSRF 통합 및 HTTP 캐싱을 비롯한 여러 가지 편리한 추가 기능도 제공합니다.

Flight PHP는 권한 및 활성 기록을 포함한 추가 추가 기능을 제공합니다.

이 모든 추가 기능은 타사 솔루션을 사용하거나 직접 구축할 필요 없이 유용한 추가 기능입니다.

JSON을 응답으로 반환하는 것은 Slim보다 Flight PHP에서 더 깔끔합니다. Slim 3에서는 withJson 응답이 더 편리했습니다. Slim 4는 PSR-7을 더 많이 준수하지만 이는 JSON 응답을 구축하려면 더 많은 코드가 필요하다는 것을 의미합니다.

JSON 응답을 많이 사용할 예정이라면 PSR-7 표준을 준수하면서 더 편리하게 사용할 수 있도록 래퍼를 만들 것입니다.

이것은 두 프레임워크 사이의 중요한 차이점입니다. Slim은 코드베이스를 정리하고 단순화하기 위해 클래스를 생성하여 더 맞춤화해야 한다고 생각하는 반면 Flight PHP는 이미 이 작업을 수행했습니다.

Slim은 다양한 도우미 미들웨어를 제공합니다. 일부 기능이 작동하려면 미들웨어가 필요합니다.

이것의 예는 FETCH를 사용하여 Javascript에서 데이터를 가져오는 것입니다. Slim에는 POST 요청에서 데이터 배열을 생성하는 getParsedBody 메서드가 있습니다.

그러나 이를 사용하려면 addBodyParsingMiddleware를 컨테이너에 추가해야 합니다.

새로운 개발자에게는 약간의 함정이 있지만, 필요한 기능만 활성화하여 프레임워크의 전체 공간을 줄일 수 있는 선택적 기능에 대한 액세스도 제공합니다.

Flight PHP는 구성 파일을 통해 이를 달성하며 일부 기능은 미들웨어 활성화 대신 구성을 통해 켜고 끌 수 있습니다.

속도 테스트

벤치마크에 따르면 두 가지를 비교한 결과 흥미로운 결과가 나왔습니다. 일부 영역에서는 Slim이 Flight PHP를 앞서고 다른 영역에서는 Flight PHP가 Slim을 앞서는 것으로 나타났습니다.

내 코드에서 두 프레임워크를 테스트한 결과 Flight PHP가 Slim보다 더 빠르고 일관된 응답 시간을 갖는 것으로 나타났습니다.

프런트엔드

Slim and Flight PHP Framework Comparison

JSON을 반환하는 GET 요청

Slim and Flight PHP Framework Comparison

JSON을 반환하는 POST 요청

Slim and Flight PHP Framework Comparison

제가 주목할만한 점은 Slim을 사용할 때 이상치가 급증한다는 것입니다.

이러한 테스트를 여러 번 실행하면 위에 표시된 것과 비슷한 결과가 나올 때마다 두 가지 모두 일반적으로 좋은 응답 시간을 보였지만 Flight PHP를 테스트할 때 발생하지 않았던 Slim의 이상치 급증이 있었고 Flight PHP는 일반적으로 더 좋았습니다. 응답 시간.

최종 생각

마이크로 프레임워크를 사용해 본 적이 없다면 시도해 보세요. 몇 가지가 있으며 각 프레임워크에서 마음에 드는 것과 마음에 들지 않는 것을 확인하는 것은 훌륭한 학습 경험이 될 수 있습니다. 하나.

Slim과 Flight PHP는 모두 훌륭한 마이크로 프레임워크입니다.

Slim은 몇 가지 유용한 기능을 갖춘 견고한 프레임워크로 조용하게 작동합니다.

Flight PHP는 가볍고 단순하므로 프레임워크를 정말 쉽게 배울 수 있습니다.

동일한 결과를 얻기 위한 좋은 응답 시간과 더 단순화된 코드는 마이크로 프레임워크를 사용하기에 정말 좋은 선택입니다.

이 두 가지를 나란히 놓고 보니 Slim보다 Flight PHP가 더 마음에 듭니다. 하지만 다른 프레임워크와 마찬가지로 직접 사용해 보고 자신에게 적합한지 확인해 보세요.

결국 올바른 프레임워크는 필요한 작업을 수행하는 프레임워크입니다.

비행 PHP
슬림 프레임워크

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn