Internet : Bookmarks : Yahoo! choisit d'utiliser Symfony
Posté par Tristan Rivoallan (). Modéré le 01 novembre 2006.
Au cas où vous seriez passé à côté, Yahoo! a récemment rendu publique la prochaine version de son outil de gestion des marques-pages. C'est bien entendu plein d'AJAX et en version bêta.
Mais ce qui est vraiment intéressant, c'est que Yahoo! ait choisi d'utiliser le framework d'application web PHP5 Symfony pour développer cette application qui supporte quelques 20 millions d'utilisateurs dans 12 langages...
D'après Michael Salisbury (qui travaille sur le projet chez Yahoo!), Symfony a été choisi pour les raisons suivantes :
La communauté attend avec impatience le reversement de code promis par Yahoo! Voilà une excellente nouvelle pour ce projet d'origine francophone qui souffle tout juste sa première bougie.
Symfony est un framework d'application web PHP5 de dernière génération (au même titre que Django, Ruby on Rails ou Catalyst). Publié sous une licence libre (MIT) par la société Sensio il y a tout juste un an, le projet est aujourd'hui très actif et devrait aboutir à une version 1.0 dans les mois qui viennent.
Mais ce qui est vraiment intéressant, c'est que Yahoo! ait choisi d'utiliser le framework d'application web PHP5 Symfony pour développer cette application qui supporte quelques 20 millions d'utilisateurs dans 12 langages...
D'après Michael Salisbury (qui travaille sur le projet chez Yahoo!), Symfony a été choisi pour les raisons suivantes :
- Excellente documentation ;
- Configuration explicite et extensible ;
- Développement actif ;
- Utilisation de briques logicielles libres de qualité (plutôt que de réinventer la roue).
La communauté attend avec impatience le reversement de code promis par Yahoo! Voilà une excellente nouvelle pour ce projet d'origine francophone qui souffle tout juste sa première bougie.
Symfony est un framework d'application web PHP5 de dernière génération (au même titre que Django, Ruby on Rails ou Catalyst). Publié sous une licence libre (MIT) par la société Sensio il y a tout juste un an, le projet est aujourd'hui très actif et devrait aboutir à une version 1.0 dans les mois qui viennent.
Symfony (1001 hits)
Yahoo! Bookmarks (beta) (697 hits)
Symfony : liste de diffusion francophone (570 hits)
> Lire la dépêche (17 commentaires, moyenne: 2).
Vous avez demandé le commentaire #770561.




Symphony...
Veuillez notez que je suis surement totalement subjectif sachant que je suis fervent défenseur de Rails et que je n'ai jamais testé Symphony, que je n'utiliserai peut etre jamais car devenu accro a Ruby...
Enfin bon, j'ai regardé le screencast de création d'interface admin sur la page d'accueil et ce qui m'a choqué c'est la tonne de config qu'il doit déclarer ! Au début par exemple, il a l'air de rédifinir tout le schéma de la base en XML ! C'est pas vraiment "Convention Over Configuration"...
[^]Re: Symphony...
bof, RoR avec ActiveRecord c'est pas vraiment mieux hein (ni même les ActiveRecord like en php...). Ça bouffe des ressources de façon hallucinante : pour chaque opération, à chaque execution du code, les requêtes sont générées from scratch, il y a plein de trucs, de bout de code générés from scratch. (en tout cas, d'aprés ce que j'ai vu, je ne suis pas spécialiste RoR, et c'est en tout cas vrai pour les activerecord like en php). Ce qui à mon sens , est un peu ridicule, puisqu'à priori, durant la vie du site, ni le code ni les requêtes ne changent.
Ça ne devient pertinent que dans le cas d'un formulaire de recherche par exemple, où les critères peuvent être indéfinies (nombre et valeurs inconnus lors du dev).
ActiveRecord, c'est peut être sexy pour le developpeur, mais au niveau de la conception, c'est un peu limite. (c'est mon avis en tout cas)
Au moins avec un fichier xml, yaml ou autre format de votre choix, qui pourrait trés bien être générés par un script en interrogeant la base de donnée durant le développement, on peut mettre en place une génération de code "statique", avoir donc des classes générées une seule fois à partir de ces fichiers de conf, contenant toutes les requêtes en dur (il y aurait juste les paramètres à faire passer) : on y gagne énormément en perf. Et c'est plus propre je trouve.
C'est en tout cas l'approche que j'ai pris pour mon framework. (non je n'utilise pas symfony)
[^]Re: Symphony...
J'ai pratiqué un peu symfony. Le fichier XML peut bien entendu être generé par reverse-engeenering en interrogeant une base de données existante (c'est le cas avec Propel utilisé par Symfony comme c'est le cas avec tous les outils de mapping objet-relationnel)
[^]Re: Symphony...
donc en gros faut regénérer manuellement le fichier XML du schéma de la base apres chaque modification, ce qui n'est pas le cas d'ActiveRecord...
[^]Re: Symphony...
Idéalement la description de référence du modèle doit être le fichier XML (YML pour les dernières versions de symfony).
À noter : un second ORM (doctrine - http://www.phpdoctrine.com) est en train d'être intégré à symfony, il est plus active record like si j'ai bien compris. Il y en aura donc pour tout le monde :)
[^]Re: Symphony...
Une bonne partie des choses sont créées de zéro, à chaque démarrage de processus. Sauf que logiquement on ne redémarre pas le processus tous les matins, contrairement à PHP.
L'idée c'est de se rapprocher des JIT d'une JVM par exemple : lent à la première exécution, rapide (ou en tout cas moins lent) après.