Les frameworks PHP sont la solution la plus fréquemment choisie en matière de développement Web. Vous pouvez trouver de nombreux frameworks PHP sur le marché, mais Laravel et Symfony sont les plus populaires de ce type auprès des développeurs Web.
Similitudes
Inutile de dire que la première similitude que vous remarquerez est qu’ils sont tous les deux des frameworks PHP.
Mais ce n’est que le début. Voici les caractéristiques les plus remarquables des deux :
- Projets Open Source
- Basé sur le modèle MVC (ce qui signifie qu’il n’y a pas de grandes différences conceptuelles)
- Un outil CLI est disponible pour les tâches courantes
- Le code est organisé d’une manière particulière
- Des outils de test sont disponibles
- Couvrir la pile complète en tirant parti des projets existants (ORM, moteurs de modèles, etc.)
- Peut être exécuté sur plusieurs plates-formes (systèmes d’exploitation et moteurs de base de données)
- Avoir des fonctionnalités d’internationalisation intégrées
- Peut être facilement étendu
Entrons maintenant dans les détails afin que vous puissiez mieux comprendre leurs différences.
Structure du répertoire
Structure du répertoire Symfony
Votre code devrait être organisé comme suit :
- src contiendra toute votre logique métier (Entités, Conteneurs, Services, etc…)
- les modèles contiendront le code de présentation (principalement des fichiers de type html)
- les tests seront stockés dans le répertoire tests
- les migrations seront le lieu des scripts de mise à niveau de la base de données
Et puis il y a d’autres artefacts qui ont une place particulière dans le projet :
- bin est l’endroit où vous trouverez des outils CLI utiles
- le fournisseur est l’endroit où vivent les dépendances (comportement commun à toutes les applications basées sur le compositeur)
- config est l’endroit où la configuration sera
- dans les traductions, vous mettrez les ressources liées à i18n
- var est un répertoire utilisé en interne par le framework, principalement à des fins d’optimisation
Enfin, le répertoire public sera le point de contact avec le monde extérieur, vous y trouverez le point d’entrée de l’application : le fichier index.php.
Outil CLI
Dans le cas de Symfony, l’outil CLI se trouve dans bin/console, en exécutant simplement cette commande :
php bin/console
Depuis le répertoire racine de votre projet, vous obtiendrez une liste complète des commandes disponibles.
Dans le cas de Laravel, un outil similaire est disponible directement dans le répertoire racine de votre application : artisan.
Si vous exécutez :
php artisan
Un look très familier, non? Le fait est qu’artisan est construit en utilisant le même composant Symfony/console, c’est pourquoi son interface utilisateur est si similaire à la console de Symfony.
Style de codage
Le codage dans Symfony est fortement basé sur le concept d’injection de dépendance, qui crée des classes faiblement couplées, facilitant les tests et la maintenance à long terme.
Laravel peut être utilisé de la même manière mais, par défaut, il propose l’utilisation de Facades et de fonctions d’assistance , qui, bien que plus faciles à mettre en œuvre, peuvent devenir un défi à long terme.
Alors que Symfony met en cache les vues et le code source par défaut, Laravel est déjà livré avec un ensemble d’API standardisées qui fonctionnent pour la mise en cache des vues. Dans cette section, un site Web développé avec Symfony prendra plus de temps à charger, tandis qu’un site Web développé avec Laravel peut prendre environ 60 millisecondes.
Le système de support de la base de données
Dans cette section, Symfony utilise Doctrine pour son traitement de données, tandis que Laravel utilise Eloquent. Dans le premier cas, le transfert de la base de données est automatique, mais le développeur doit identifier les champs particuliers dans le code. Dans Laravel, il n’est pas nécessaire de déclarer des champs lors de la migration d’une base de données.
La modélisation des données
Pour accéder aux données dans Laravel, le développeur doit avoir une compréhension approfondie de SQL. Parce qu’il est basé sur Eloquent, il a tendance à lier votre application à la conception de votre schéma de base de données, donc si vous changez le nom d’une seule colonne, toute la base de données peut être affectée. Dans Symfony, basé sur Doctrine, le modèle de mappeur est utilisé, vous permettant de faire la distinction entre votre schéma de base de données et vos objets métier et votre logique.
Déploiement
Le déploiement d’une application Symfony implique :
- Téléchargement du code
- Création du répertoire de cache et de journaux et attribution des autorisations appropriées
- Création de fichiers d’environnement
- Installation de bibliothèques tierces
- Construire le cache
- Configuration du serveur Web
Le déploiement d’une application Laravel implique :
- Configuration du serveur Web
- Installation de bibliothèques tierces
- Optimisation du chargement de la configuration du cache
- Optimisation du chargement des itinéraires
- Optimisation du chargement des vues
Nos services sont disponibles pour aider aux tâches de déploiement.
Cet Article est utile ? Votez