Main Contents

Framework PHP, oui mais !

Coding

En informatique, un framework est un espace de travail modulaire. C’est un ensemble de bibliothèques, d’outils et de conventions permettant le développement d’applications. Il fournit suffisamment de briques logicielles et impose suffisamment de rigueur pour pouvoir produire une application aboutie et facile à maintenir. Ces composants sont organisés pour être utilisés en interaction les uns avec les autres (voir urbanisation).

(Source : wikipedia)

J’en ai pas mal entendu parler de tous ces Frameworks pour faciliter le développement PHP à l’aide de bibliothèque, de l’application du modèle MVC dans tous les sens et je ne sais quels autres concepts révolutionnaires. J’avoue que je m’y suis tardivement mis, dans la mesure ou je n’en voyais pas l’intérêt. Et puis, il y a de ça un peu plus d’une semaine j’ai installé symfony sur une dédibox, afin de voir à quoi ça ressemblait.

Installation de symfony, le plus simple étant d’utiliser PEAR (dédicace à noodle, private joke) :

  • pear upgrade PEAR
  • pear channel-discover pear.symfony-project.com
  • pear install symfony/symfony

Création d’un projet

  • symfony init-project monprojet
  • symfony init-app monapplication

Tout est très simple, comme vous pouvez le constater sur ces lignes. J’ai du passer tout un week-end à suivre le tutoriel askeet, pour arriver au 6e jour, et c’est vraiment génial. On lui passe un modèle de base de données (en XML ou YAML) et il vous créé toutes vos tables avec les clés et tout. Une ligne de commande, et il vous génère toutes les classes pour manipuler vos tables. Une autre ligne de commande, et il vous génère toute une interface CRUD pour gérer une (des) table(s), ce qui est souvent barbant à mettre en place.

J’ai passé mon week a m’amuser, me permettant de découvrir une nouvelle manière de coder, pour moi qui suis un frustré de linux (Chipset Graphique moisi, OS pas fluide, tout ça tout ça…) utiliser autant la ligne de commande était vraiment motivant (mais putty en fullscreen aurait pu me faire passer pour un malade).

OUI, MAIS !

J’ai quand même du mal à maîtriser la bête, le fait que toutes ces classes soient générées par quelqu’un d’autre que moi font que j’ai l’impression d’apprendre un nouveau langage. Le modèle MVC c’est cool, mais la l’arborescence est vraiment trop complexe pour moi et le plus triste c’est au niveau de la lourdeur du processus, ce que j’aurais du mal à mettre sur le compte du serveur.

Symfony permet d’avoir un panel pour débugger vos applis donnant notamment le temps nécessaire au serveur pour générer la page. Pour une simple page affichant 3 questions (donc une requête sur une table “questions” avec une jointure vers une table “users”), le nombre de votes pour chaque question (donc une requète sur une table “votes”) la page est générée en plus de 250ms ! Pour si peu de requêtes, et qui plus est des requêtes plutôt simples, je trouve ça vraiment énorme…

D’après quelques benchs je ne serais pas le seul témoin de la lourdeur de symfony :

(Si vous avez d’autres liens sous la main, je suis preneur ;-))

En un week end je n’aurais généré qu’une toute partie du site alors qu’en développant tout seul, j’aurais presque pu coder le site en entier (bon il faut aussi prendre en compte le fait que je ne connaissais pas le framework donc temps d’adaptation).

Je crois que je ne suis pas convaincu par les framework php (en javascript, c’est plutôt génial), en tout cas pas par symfony. Peut-être que j’aurais un jour le courage d’en tester d’autres (Jelix, Cake, Zend…) mais je suis plus adepte de coder avec mes méthodes à moi… Des expériences / avis à partager ?

(Il faut vraiment que j’arrête de citer Wikipedia et que je trouve un plugin cool pour insérer du code dans un billet)

Palleas @ février 7, 2008

12 commentaires

  1. Hugo février 8, 2008 @ 9:58

    Je vais prendre un peu la défense mon framework préféré Symfony.

    Il est clair que ce framework (comme n’importe quel autre) demande un temps d’adaptation non négligeable. Personnellement je n’en suis qu’au début de son apprentissage après un mois d’essais mais chaque jour j’apprends de nouveaux trucs super intéressants.

    Concernant ton désaccord avec les frameworks, c’est normal. Jusqu’à maintenant, tu étais habitué à développer avec tes méthodes et tes outils personnels. Avec un framework c’est différent. Le but c’est de poser des règles pour un travail collectif (ou pas forcément) sur une application. Il devient plus facile de produire et maintenir une application qui repose sur un framework open-source éprouvé que sur un framework propriétaire. Pour une agence interactive qui travaille sur un framework open-source, c’est aussi un avantage supplémentaire si elle recrute un développeur qui maîtrise ce dernier. Le type est déjà opérationnel pour développer puisqu’il connait l’outil.

    Ce que je trouve vraiment intéressant dans Symfony, c’est le nombre de fonctionnalités et de tâches rébarbatives qu’il remplit à la place du développeur :

    * génération des CRUD,
    * gestions des droits des users,
    * tests unitaires et fonctionnels,
    * sécurité de base (non négligable quand on voit le nombre d’applis blindées de XSS)
    * gestion des url
    * configurabilité à tous les niveaux…

    Bref, Symfony en fait beaucoup ! Et c’est tant mieux parceque je ne me vois pas écrire du code toute ma vie comme je le fais aujourd’hui. J’envisage sérieusement de me tourner vers ce genre d’applications pour m’aider au développement.

    Par contre quand on parle de performances, je trouve ça assez délicat car il faut savoir que Symfony en environnement de développement prend beaucoup de temps à cause des tests et des logs massifs qu’il produit. En production, tout ça est dégagé. Symfony dispose également de son système de cache qui est aussi désactivé en environnement de développement.

    Pour voir vraiment ce que valent les performances de Symfony, il faudrait tester une application terminée et en production, avec son taux de fréquentation normal.

    Le billet de Laurent Jouanneau comparait entre autre les moteurs ORM des différents frameworks. Celui de Symfony (Propel) est un moteur indépendant (développé avant Symfony) contrairement à celui de Jelix. Avec Symfony , tu peux remplacer le moteur d’ORM Propel par un autre. Par exemple Doctrine qui devrait être amené à remplacer Propel dans les versions futures de Symfony.

    ++

  2. Julien (k-ny) février 8, 2008 @ 12:34

    Hop, je viens flooder par ici. :)

    Donc au sujet de Jelix, que je commence à peine à apprendre (et c’est mon 1er framework) …

    Les choses intéressantes sont:

    * Projet français (du coup, doc et support en français)
    * génération des CRUD
    * gestions des droits des users
    * gestion des url
    * configurabilité
    * greffons
    * …

    En gros ça à l’air de faire pas mal de choses que symphony fait. L’arborescence n’est pas forcement simple mais je me suis pas encore vraiment perdu ^^ (c’est bon signe ça)

    Mais je manque de points de comparaisons … plus d’infos dans quelques semaines ^^

  3. Hugo février 8, 2008 @ 13:37

    Ce qui me déplait sur Jelix d’après ce que j’en ai vu dans leur doc, c’est le fait d’avoir à utiliser leur syntaxe de templates…

  4. Palleas février 8, 2008 @ 18:37

    @K-ny : Raaa mais toi aussi tu t’appeles Julien ? =O

    Peit-être que je continuerai symfony ou autre, mais pour l’instant j’prefère me lancer dans d’autres trucs ;-)

  5. rpsblog.com » A week of symfony #58 (4->10 february 2008) février 11, 2008 @ 0:29

    [...] Framework PHP, oui mais ! [...]

  6. Hugo février 11, 2008 @ 10:13

    Héhé regarde plus bas dans le dernier billet du blog de Symfony :

    http://www.symfony-project.org/blog/2008/02/10/a-week-of-symfony-58-4-10-february-2008

    ^^

  7. Palleas février 12, 2008 @ 10:20

    Mouarf, je suis quoté sur le blog de symfony \o/

    Comment ça se fait ?

  8. Hugo février 12, 2008 @ 11:58

    Après Bashfr, te voilà quôté sur Symfony ! On recent la nette progression intellectuelle lol

  9. john john février 12, 2008 @ 18:42

    “Comment ça se fait ?”
    si tu sais lire il y a écrit “they talked about us” au dessus

  10. Palleas février 12, 2008 @ 21:35

    Je voulais juste dire que j’étais surpris de m’y voir, tout simplement.

  11. Meshvere février 12, 2008 @ 22:09

    apparement cette fois tu vas te faire un référencement moins pourri que le précédent ;)

    et en référencement moisi je suis encore meilleur que toi :p

  12. Symfony.es » Blog Archive » Una semana con Symfony #31 (4-10 febrero 2008) février 17, 2008 @ 20:15

    [...] Framework PHP, oui mais ! [...]

Suivre les commentaires de ce billet par RSS

Laisser un commentaire