Symfony VS Drupal : une victoire tranchée!

Symfony VS Drupal : une victoire tranchée!

Il est souvent question lors du développement d’un projet web avec un Framework PHP de savoir lequel est mieux adapté à ses besoins.

Outre cakePHP, Zend et bien d’autres encore, il existe entre autres deux Frameworks qui retirent leur épingle du jeu.

En l’occurrence, Drupal 6 et Symfony 1.4 . Par conséquent, dans un contexte de développement d’un site web, lequel des deux est plus adapté ?

Afin de départager ces deux Frameworks, nous allons voir dans un premier temps ce qu’ils ont en commun. Puis dans un deuxième temps, nous allons mettre en exergue leurs différences afin d’émettre un avis tranché !

Définition de Symfony

SymfonySymfony est un Framework PHP open source qui permet de développer et assurer la gestion d'un site web avec de bonnes pratiques de coding. 

Définition de Drupal

DrupalDrupal est un CMF open source écrit en PHP qui permet de développer et gérer un site web dans sa globalité. 

 

Points communs entre Symfony et Drupal

Une forte communauté – Ils disposent tous les deux d’une très large communauté d’utilisateurs et de contributeurs. Cela aide beaucoup dans les forums lorsque l’on a un problème. Aussi, il y a toujours une bonne âme pour vous apporter ses lumières.

La qualité de la documentation – Leurs APIs sont très bien documentées avec de nombreux exemples.

A noter une approche progressive de Symfony via l’étude d’un cas concret nommé Jobeet. Les contenus sont très bien rédigés et permettent un apprentissage step by step de Symfony.

En outre, Drupal a une approche thématique. On ne sait pas toujours par où commencer. Cependant, cette approche vous donne des réponses sur des points précis quand vous travaillez sur un projet. A aucun moment vous ne vous sentez démunie car la documentation est abondante.

Les modules ou plugins – Il existe de nombreux modules pour enrichir leurs fonctionnalités. Par exemple, le module sfFacebookConnectPlugin de Symfony ou le module Facebook Connect de Drupal. 

D’autres modules plus évolués vous permettent de transformer un simple site en site de e-commerce avec le module lbCartPlugin de Symfony ou le module Ubercart de Drupal.

Les thèmes – On peut facilement basculer d’un thème à l’autre sans changer la logique du code. Cependant, bien qu'on ne peut pas vraiment parler de thème pour Symfony, il n’en existe pas ou très peu.

Du côté de Drupal c’est différent, il y a une multitude de thèmes disponibles et faciles à mettre en place.

Un code source robuste – Ces deux frameworks appliquent un ensemble de paradigmes et designs pattern comme le MVC qui les assure à eux deux, un code propre et sécure ! 

Des similitudes dans le code – En regardant de plus près le code source, on constate qu’ils ont à peu près la même logique. Regardez les deux exemples suivant :

<?php 
///////////////////////////////////////
/// Exemple requête SQL avec Symfony
//////////////////////////////////////

$query = Doctrine_Query::create() 
->select('*') // on prend tous les champs
->from('users u') // nom de la table + alias 
->where("u.name = ?", "toto"); // nom de l'utilisateur égale à toto 
$query->execute(); 

?> 
<?php 
/////////////////////////////////////
/// Exemple requête SQL avec Drupal
////////////////////////////////////

$query = Database::getConnection() 
->select('users', 'u') // nom de la table + alias 
->fields('*')) // on prend tous les champs 
->condition('name', 'toto', '='); // nom de l'utilisateur égale à toto 
$query->execute(); 

?>

Un backend – Il possède tous les deux un backend. Cependant, celui de Drupal est plus abouti et a plus de fonctionnalités. Exemple : la gestion des utilisateurs, les types de contenus pour ne citer qu’eux.

Symfony avec son admin générator offre des possibilités assez limités. Exemple : édition des données avec un formulaire. Mais son backend  peut être amélioré avec des plugins comme Sympal qui permettent d’activer des fonctionnalités proches de Drupal.

On constate donc que Symfony et Drupal ont pas mal de points en communs et l'on pourrait en citer d’autres. Cependant, certaines choses essentielles les différencient.

 

Les différences entre Symfony et Drupal 

Rapidtité de déploiment – Avec Drupal on peut rapidement mettre en place un site robuste et opérationnelle en quelques cliques. Cela n’est pas aussi évident avec Symfony car on passe beaucoup de temps à coder.

Performence – Symfony offre d’excellentes performances en générales à l’opposé de Drupal ou même avec son système de cache offre des performances peu satisfaisantes. Cependant couplé avec un gros serveur + un pti' varnish, Drupal ne badine plus !

Le SEO – Drupal est déjà optimisé pour le SEO et prend bien en compte le format RDF dans la version 7 tandis que tout est à faire avec Symfony.

Leur expérience – L’experience web de Drupal est 2 fois supérieur à celle de Symfony.  Cependant, l'ossature de Symfony est très bien pensée pour acquérir rapidement l'expérience de Drupal.

Par ailleurs, c’est  sur ces points précis que l’on pourra les départager.

 

Conclusion de la confrontation Symfony vs Drupal

Nous avons vu que Drupal et Symfony ont des points en commun mais aussi quelques divergences notables.

En effet, c'est grâce à ces divergences que l'on peut les départager. Cependant, c'est l’affinité que l’on peut avoir avec l’un des ces frameworks qui permettra de les départager.

Mais avec l'avènement de Drupal 7 et Symfony 2, les choses risquent de bouger.

 

A votre tour

Partagez vos avis dans les commentaires et votez pour votre framework préféré.

Le meilleur Framework entre Drupal et Symfony ?

11

Commentaires

C'est dur de comparer des carottes avec des voitures ?

En effet c'est dur de comaparer deux choses qui ne sont pas comparables. Mais dans cet article, Drupal et Symfony sont deux voitures et ils roulent tous les deux.

Ce que je veux dire par là, c'est qu'ils ont tous les deux le même bute et propose quasiment les même fonctionnalités à quelques trucs près. On le voit bien et vous pouvez même le vérifier dans votre pratique quotidienne de l'un ou l'autre de ces frameworks.

S.

Symfony est un meilleur framework car il est pensé pour être un véritable cadre de développement. Sans rentrer dans un troll sans fin, je pense qu'il manque pas mal de points de comparaisons, la facilité d'extension, l'architecture des éléments, la gestion de la base de données, du multibase, les possibilités de staging (dev/prod) de mise en production, l'évolutivité, la surcharge possible des modules, le modèle tout-objet de symfony contre le modele mi procédurale/mi objet de Drupal.

Donc je vote Symfony.

Je te rejoins sur le fait que Symfony soit un bon framework.

La liste de comparaison est longue, on pourrait même faire plusieurs articles pour ça. Cependant, ce que je veux montrer dans cette article c'est que Drupal et Symfony ne sont pas si différent que ça dans leur logique.

En effet, on peut arriver à résoudre les même problématiques avec Dupal ou Symfony mais cela va dépendre de l'affinité du développeur avec l'un ou l'autre.

Donc l'entreprise qui souhaite développer un gros site web, si elle a à sa disposition un développeur Drupal pour réaliser le site, autant le faire avec un mec qui s'y connait en Drupal et vice-versa.

Donc, Drupal vs Symfony ça devient facile de trancher...

PS: Votez pour votre framework préféré :) !

S.

 

pour résumé, drupal c'est pas un framework, mais une boite de Lego parfaite pour les fainéants qui veulent pas coder.

Salut, je t'invite à lire cet article =>

http://autodidactique.com/2011/drupal-un-framework-ou-juste-un-cms

S.

Je rejoins Bobby Wallace ...
Ce sont 2 outils qui facilitent la création d'un site web, mais le font d'une façon totalement différente.
Entre Framework et CMS la différence est grande.
Je ne comprend pas pourquoi chercher à comparer les deux.

Soit on compare Symfony avec Zend Framework, CakePHP, CodeIgniter...
Soit on compare Drupal avec Joomla, Wordpress, eZPublish...

Comparer l'un des élements de la première catégorie avec un élement de la 2èeme est comme le dit Bobby Walace comme comparer des carottes et des voitures...

Idem, à la limite, comparer les avantages et les inconvénients de chaqun aurait été plus judicieux. Avec drupal t'assemble tu configure mais tu codes en dernier recours. Avec symfony tu codes et puis c'est tout, ça n'a pas grand chose à voir

slt pour l'instant et par respet ya pas comparablle avec drupal

L'usage de Symfony et de drupal sont très différente, mais certain critère permette de faire le bon choix.

Pour les sites à créer rapidement je conseillerai plutôt du CMS en particulier Drupal et prestashop, le backoffice est très complet les modules sont nombreux, on vas donc tomber juste rapidement.
Pour les sites qui demandent de la robustesse et des performances je conseillerai plutôt Symfony ou Jelix. Rien n'est plus rapide ni plus performant que si il a été crée sur mesure.

Le cout et le temps pour la création de site n'est pas forcement dépendant du choix. Un site drupal sera plus long a faire qu'un site symfony qui à déjà été fait pour un autre client et que l'on ne fait qu'adapté.

Un critère est de savoir si on vas s’adapte au site ou si c'est le site qui s'adaptera. Modifier le comportement d'un CMS est particulièrement plus couteux, et toujours assez compliqué. Un développement sur mesure s'adaptera bien plus facilement au besoin. Si l'on choisie de modifier le comportement d'un CMS on vas avoir besoin de nombreux modules et du coup on vas augmenter les problèmes (mise a jour plus fréquente, maintenabilité plus difficile, sécurité).

Un autre critère est le SEO, on aura beau dire ce qu'on veux les modules SEO de tous les CMS sont ceux qui sont les plus galères à mettre en place. Bien qu'il respecte le plus souvent les bonnes pratiques, il ne permette pas les pratiques intéressante :) les borders line comme certain disent. Pour les automatismes et les constructions complexes d'arborescence de lien c'est juste l'enfer. Alors si l'on n'a pas de besoin spécifique et qu'on est prés à attendre que la page monte lentement dans google, ca peut aller. Mais dans le cas d’opération marketing court terme...

Dites ce que vous pensez, laissez un commentaire !