Un framework ? ok... mais lequel !?

Eléphant du PHP | 224 Messages

06 déc. 2007, 12:48

Bonjour à tous :)

Question qui a été posée à plusieurs reprises, mais pas de réponses assez claires ou actualisées à mon sens (d'après ma petite recherche sur le forum)... donc, je tente ma chance afin d'avoir un retour d'expérience de la part des développeurs qui connaissent un peu les différentes solutions existantes...

J'ai repéré la liste suivante de framworks Php, dont certains sont des projets francophones (plutôt intéressant pour moi qui ne maîtrise pas vraiment l'anglais, mais ce n'est pas un critère indispensable), liste partielle issue de Wikipédia :

- QCodo (en)
- CakePHP (en)
- Symfony (en)
- Prado (en)
- CodeIgniter (en)
- Zend (en)
- Copix (fr)
- EasyBrick (fr)
- Jelix (fr)

Voilà, vos avis m'intéressent, mais aussi vos remarques quant aux points forts et faibles des différentes solutions listées... ce n'est pas un besoin urgent, prenons donc le temps de confronter les opinions des uns et des autres, histoire d'avoir un panel le plus informatif possible et ainsi pouvoir choisir le plus adapté aux réalisations futures...

Merci à tous pour vos lumières ;)
Modifié en dernier par FredoMkb le 06 déc. 2007, 15:36, modifié 2 fois.
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Eléphant du PHP | 73 Messages

06 déc. 2007, 13:24

Bonjour,

tu n'as as mis le FrameWork de Zend dans ta liste, c'est une volonté ? Il me semble être celui, qui aujourd'hui, ne doit pas être ignorer ayant le savoir faire de Zend, mais aussi les partenariats de Sun et d'autres grands pontes du monde Java.

J'ai fait une étude de Copix qui est un framework (orienté CMS) avec des briques techniques trés bien réalisées et surtout documentées ! Le sérieux et le professionnalisme de ses concepteurs n'est pas non plus à négliger.

CakePHP et Symphony sont trés interessants eux aussi, et j'ai trouvé beaucoup d'interêt à leurs concepts inspirés de Ruby On Rails. J'ai aussi apprécié leurs tutos et leur orientation Web 2.0 (Ajax et consort).
Image Un bon maître a ce souci constant : enseigner à se passer de lui.

Eléphant du PHP | 224 Messages

06 déc. 2007, 15:51

Bonjour Sedril et merci pour ta réponse...
tu n'as as mis le FrameWork de Zend dans ta liste, c'est une volonté ?
Non, juste un oubli... c'est corrigé ;)

Il y a une liste assez importante chez Wikipédia, j'ai retenu ceux qui me semblaient les plus clairs et accessibles, mais il y a certainement d'autres qui méritent d'être ajoutés à cette liste, n'hésitez pas à me le signaler...

Il me semble être celui, qui aujourd'hui, ne doit pas être ignorer ayant le savoir faire de Zend, mais aussi les partenariats de Sun et d'autres grands pontes du monde Java.
En effet, vu les partenaires, cela lui donne de fait une certaine crédibilité... faut voir maintenant dans quelles conditions et pour quelles projets il peut s'avérer un bon choix...

J'ai fait une étude de Copix qui est un framework (orienté CMS) avec des briques techniques trés bien réalisées et surtout documentées ! Le sérieux et le professionnalisme de ses concepteurs n'est pas non plus à négliger.

CakePHP et Symphony sont trés interessants eux aussi, et j'ai trouvé beaucoup d'interêt à leurs concepts inspirés de Ruby On Rails. J'ai aussi apprécié leurs tutos et leur orientation Web 2.0 (Ajax et consort).
Merci pour ces infos, elles permettent déjà de poser quelques bases pour pouvoir faire un choix pertinent à l'avenir...

Personnellement, vu mon modeste niveau en dév. Php, un des critères qui me semblent importants à considérer est la facilité de prise en main et l'ergonomie de l'ensemble du framework (si tant est qu'on puisse parler d'ergonomie dans ce cas précis)...

Bref, l'idéal serait qu'on puisse faire, à la fin, une fois que d'autres se seront exprimés, un petit tableau récapitulatif des principaux avantages de chaque solution, même si, j'en convient, ce ne sera que des appréciations subjectives, mais bon, ça peut être une début instructif...

Merci encore Sedril pour ta réponse... d'autres avis ? :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

ViPHP
ViPHP | 1024 Messages

06 déc. 2007, 16:32

symfony est chouette pour :
_ sa documentation abondante
_ sa communauté
_ son mode ligne de commande : hop, on effectue un boulot monstre automatiquement en lançant une commande
_ son générateur d'interfaces d'admin
_ ses fichiers de config en yaml, très lisibles humainement, et permettant une granularité de la config
_ ses plug ins


on en a discuté assez longuement sur ce sujet :
http://www.phpfrance.com/forums/voir_sujet-31761.php

A+

Pascal

Eléphant du PHP | 224 Messages

06 déc. 2007, 18:17

Merci Pascaltje pour ta réponse...
symfony est chouette pour :
_ sa documentation abondante
_ sa communauté
_ son mode ligne de commande : hop, on effectue un boulot monstre automatiquement en lançant une commande
_ son générateur d'interfaces d'admin
_ ses fichiers de config en yaml, très lisibles humainement, et permettant une granularité de la config
_ ses plug ins
Symfony semble en effet une solution assez complète, d'ailleurs il bénéficie d'une très bonne réputation en général (selon ce que j'ai pu voir ci et là lors de mes recherches internet).

En revanche, même si c'est un atout pour certains, le mode en ligne de commande n'est pas quelque chose qui me séduit à priori s'il s'agit d'une fonctionnalité non optionnelle, ceci dit, faudrait que je regarde tout ça de plus près pour me forger une opinion plus juste de l'outil...

Par ailleurs, pardon pour mon ignorance, mais qu'entends tu par "granularité de la config" ? :shock:

on en a discuté assez longuement sur ce sujet :
http://www.phpfrance.com/forums/voir_sujet-31761.php
En effet, avant d'ouvrir ce topic, j'ai fais une recherche sur le forum et j'ai consulté quelques sujets très intéressants, dont celui que tu mentionnes (que j'ai lu in extenso, débat de fond très instructif), mais je n'ai malheureusement pas trouvé de sujet où on pouvait se faire une petite idée des avantages et inconvénients des différentes solutions "sérieuses" existants aujourd'hui, c'est pourquoi j'ai lancé ce sujet, que j'espère pourra fournir, à terme, quelques pistes utiles pour faire des choix selon les besoins de chacun...

Encore merci pour ta réponse... encore d'autres avis à partager ? :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

06 déc. 2007, 18:29

Granularité de la config == le fait de pouvoir avoir des configs +/- fines selon l'importance du projet

Sympfony a été créé pour des grands comptes, il est orienté usage pro et intégration en entreprise (LDAP, p ex).
Zend Fwk est très compatible avec la Zend Platform (produit commercial) qui permet de monitorer son appli web sur le serveur.
Voilà pour les deux avec lesquels j'ai le plus bossé.

En fait, tu vas devoir choisir un fmwk en fonction de ton besoin :)
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

ViPHP
ViPHP | 1024 Messages

06 déc. 2007, 19:09

Par ailleurs, pardon pour mon ignorance, mais qu'entends tu par "granularité de la config" ? :shock:
on peut configurer des choses à différents niveaux :
_ le site global
_ l'application ( front end / back end, etc )
_ le module ( gestion de tel ou tel truc )

et la ligne de commande, c'est top !
il y a un peu de boulot pour la faire fonctionner, mais ensuite ça aide pas mal en automatisant les tâches sans valeur ajoutée.

A+

Pascal

Mammouth du PHP | 1511 Messages

06 déc. 2007, 22:36

Personnellement, j'apprècie ZendFramework mais quelques petites choses me manquent dessus.
Par exemple, la gestion des formulaires :)
C'est quelque chose que j'apprécie particulièrement.
J'ai d'ailleurs commencé a develloper une classe prévue a cet effet ;)
@+

Eléphant du PHP | 224 Messages

07 déc. 2007, 01:58

Merci Pascaltje et Mere-Teresa pour les précisions à propos du terme "granularité"... et merci Momox pour ton témoignage... :)

J'ai passé un petit moment ce soir à regarder le site de Copix, et ça à l'air vraiment très bien, j'apprécie tout particulièrement le fait de pouvoir lire la doc et les tutos en français, c'est tellement plus facile pour moi, contrairement aux autres solutions, comme Zend, dont tout est exclusivement en anglais... enfin bon, je ne veux pas relancer l'éternel débat sur la langue en programmation, mais j'avoue que si les projets les plus importants proposaient leur doc en plusieurs langues, ce serait vachement plus accessible pour tout ceux qui ne maîtrisent pas bien l'anglais... ;)

Bon, concrètement, le choix n'est pas évident à faire en fait, car la plupart paraissent assez puissants et fort bien conçus, il va être difficile de savoir lequel est le mieux adapté à tel ou tel développement, à moins de les tester les uns après les autres... et encore...

Alors, pour le moment mon choix se porte naturellement sur Copix, car c'est celui que j'arrive le mieux à comprendre, et puis j'ai l'impression que c'est un projet autour duquel gravite une communauté d'utilisateurs assez importante (toute proportion gardée en comparaison avec les d'autres projets les plus populaires)...

Bref, je continue à regarder tout ça dans les jours et semaines à venir, peut-être que d'autres avis ou témoignages me donneront plus d'infos sur les autres solutions... je laisse donc le topic ouvert afin que d'autres puissent s'exprimer...

Merci à tous pour vos contributions... à+ :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

ViPHP
AB
ViPHP | 5818 Messages

07 déc. 2007, 16:32

...

En fait, tu vas devoir choisir un fmwk en fonction de ton besoin :)
D'ailleurs selon le créateur du langage PHP :

"Répondant à nos questions en privé à l'issue de son intervention, Rasmus Lerdorf a encore expliqué que les performances étaient tributaires de l'utilisation ou non d'un framework. De fait, les cadres applicatifs censés améliorer la productivité des développeurs et assurer un déploiement optimisé sont légion. Or, pour lui, les frameworks n'améliorent vraiment la productivité que de ceux qui les ont conçus, car ils les connaissent très bien. « Et si vous avez des problèmes de performance, il est difficile d'en sortir. » Le mieux serait encore de bien identifier son besoin, et de personnaliser un framework, voire de se créer son propre framework bien spécifique."

Source
http://www.lemondeinformatique.fr/actua ... 24646.html

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

07 déc. 2007, 18:24

Fais très attention avec Copix, je travaille avec au boulot et on a beaucoup de problèmes avec, qui me font penser qu'il est loin d'être utilisable en prod sans le maîtriser vraiment à fond :
  • À chacune de nos mises à jour du framework, la compatibilité ascendante a été brisée
  • Pas de tests unitaires (donc pas possible de vérifier cette compatibilité ascendante avant de faire l'upgrade)
  • Beaucoup de petites choses mal pensées voire frôlant l'amateurisme, j'en prends une au hasard parce qu'elle me vient en tête : pour savoir dans quelle module ou actiongroup on se trouve (dans une zone ça peut être très utile par exemple) il faut lire _request('module') ou _request('groupe'). Implication immédiate, si tu veux passer un champ de formulaire nommé "module", il vaut mieux t'abstenir :)
  • La doc est très incomplète, et l'API... Parfois on a l'impression qu'ils ont fait de l'objet histoire de dire que c'est POO, mais le nombre de classes avec seulement une ou deux méthodes est hallucinant, cela a un impact immédiat sur la souplesse du système (rien que pour brancher le système d'identification sur une classe perso, ou surcharger le système de vérification des credentials, rien n'est prévu ou alors très limité, c'est décourageant :( ).
Attention, à part ça c'est un bon produit, qui a le mérite d'être assez simple à prendre en main et avec une communauté active. Mais pour une utilisation professionnelle je dirais qu'il n'est pas encore pret.



Edit : quant au message de Rasmus, je crois hélas qu'il est encore sur les discours qu'il tenait du temps de PHP3, je ne suis pas sûr qu'il soit aujourd'hui à la même vitesse d'évolution que son langage (on dit parfois la même chose de Linus Torvalds, il y a certainement du vrai dans les deux cas).

Eléphant du PHP | 224 Messages

07 déc. 2007, 20:01

Merci AB et Naholyr pour vos réponses :)

AB, évidemment, comme je le disais au début de ce sujet, tout dépend de la réalisation à faire, certains frameworks sont plus adaptés à tel ou tel développement, mais à mon niveau, je suis encore incapable de faire justement cette différence, c'est un peu le but du topic, arriver à dégager les grandes lignes des principaux produits existants aujourd'hui, tout en sachant que rien n'est figé dans le marbre et qu'une solution plutôt orientée CMS peut très bien évoluer et proposer d'autres champs d'utilisation...

Bref, avec les remarques des uns et des autres, on pourra peut-être y voir plus clair quant aux possibilités offertes par chaque produit... je le souhaite en tout cas :)

Naholyr, merci beaucoup pour ces remarques fort intéressantes, c'est justement ce type de retour d'expérience qui permettra de mieux dessiner les points forts et faibles de chaque solution, ceci dit, en ce qui me concerne, les considérations de prod ne font pas encore partie des critères que je retiens, ça viendra peut-être plus tard, pour l'instant c'est la simplicité de la prise en main et l'accès à la documentation qui dictent le plus mes choix, même si je sais parfaitement que ce ne sont absolument pas les arguments principaux qui définissent la qualité de ces produits, mais j'en suis là pour le moment...

Enfin, tout ça pour dire que pour l'instant je n'ai pas arrêté un choix définitif, j'explore encore peu à peu les différentes doc (je suis moins à l'aise avec l'anglais j'avoue), je passerais ensuite à une étape de test de deux ou trois produits qui me paraîtront les plus accessibles à mon niveau et susceptibles de correspondre aux projets que j'ai envie de réaliser... donc tout ça va évoluer doucement dans les semaines à venir, on verra quelles solutions retiendront finalement mon adhésion...

Merci en tout cas pour vos témoignages, ils permettent peu à peu d'y voir plus clair :merci:

à+ :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Mammouth du PHP | 1511 Messages

07 déc. 2007, 21:51

Le problème actuel je trouve avec les frameworks, c'est qu'on aimerait avoir certains elements de l'un, certains de l'autre, etc...
Moi j'aimerais bien par exemple, la gestion des formulaire et la gestion d'erreurs de prado et la simplicité de cakePHP.
Mais bon, actuellement, j'en suis a me faire ma ptite boite à outil en devellopant ce dont j'ai besoin... :/ surtout au niveau du controlleur, ou j'aime bien avoir une hierarchie application > controlleur > action au niveau du routeur, ce qui me permet plus de fléxibilité :)
Voila mon avis ;)

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

10 déc. 2007, 10:36

Via Nexen, j'ai trouvé un comparatif rapide (en anglais) de Symfony et Zend Framework
http://www.karlkatzke.com/php-symfony-vs-zend/
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Petit nouveau ! | 1 Messages

10 déc. 2007, 18:42

Bonjour, je me permet de répondre à ce message pour y apporter quelques compléments.
[*]À chacune de nos mises à jour du framework, la compatibilité ascendante a été brisée
L'une des nouveautés de Copix version 3 (pour PHP5) est justement d'assurer cette compatibilité ascendante. C'est aujourd'hui une volonté forte de l'équipe de développement (pour ne pas reproduire les erreurs de la version 2).
[*]Pas de tests unitaires (donc pas possible de vérifier cette compatibilité ascendante avant de faire l'upgrade)
Il existe des tests unitaires dans Copix, il utilise PHPUnit comme framework de test. Un module (copixtest) permet de plus de lancer les tests de façon intégrée a l'application.
[*]Beaucoup de petites choses mal pensées voire frôlant l'amateurisme, j'en prends une au hasard parce qu'elle me vient en tête : pour savoir dans quelle module ou actiongroup on se trouve (dans une zone ça peut être très utile par exemple) il faut lire _request('module') ou _request('groupe'). Implication immédiate, si tu veux passer un champ de formulaire nommé "module", il vaut mieux t'abstenir :)
La, c'est très subjectif.... entre mal pensé / mal comprises / choix de conception, la frontière est souvent minime.

Il existe en effet trois paramètres réservés pour diriger un internaute vers une action (module, group et action). Maintenant, je crois qu'il n'existe pas d'autre solution magique afin de permettre cette manipulation sans demander au développeur ou à l'administrateur système d'ouvrir les .htaccess ou autres configurations serveur.

Le choix de Copix est de proposer 3 paramètres figés pour toute l'application, c'est historique et cela n'a jamais posé de problème en 7 ans d'utilisation.
[*]La doc est très incomplète,
C'est vrai, la documentation est toujours en cours de rédaction, mais elle se complète de jour en jour. Pour les problèmes concrets, il existe un forum (http://forum.copix.org) ou les développeurs répondent aux questions en quelques heures tout au plus.
et l'API... Parfois on a l'impression qu'ils ont fait de l'objet histoire de dire que c'est POO, mais le nombre de classes avec seulement une ou deux méthodes est hallucinant
Oula, ça je ne peux le laisser passer :-)
Rien n'est fait "histoire de" faire de la POO. Copix est développé et utilise dans sa conception tout un tas de Design Patterns (Factory pour les classes, Singleton pour la config, Builder pour les DAO, bien évidemment MVC, Proxy pour les classes de session, Oserver pour les évènements, ...)

et pour les droits que tu cites ici :
(rien que pour brancher le système d'identification sur une classe perso, ou surcharger le système de vérification des credentials, rien n'est prévu ou alors très limité, c'est décourageant :( ).
Le système de droit fonctionne sur un principe de chaine de responsabilité. Il t'es ainsi possible de remplacer tout ou partie du système d'authentification, de rajouter des systèmes de droits, des systèmes de groupe, ...

J'avoue toutefois que cette partie n'est pas encore complètement documentée, d'ou la probable incompréhension.

J'insiste sur le fait qu'il ne faut pas hésiter à utiliser le forum en cas de problèmes d'utilisation, les développeurs répondent très rapidement !

Merci en tout cas pour le retour d'expérience, cela donne des pistes d'amélioration !!