Développez vos applications PHP avec un Framework

Il arrive souvent que l’on fasse référence au business plan lorsqu’un entrepreneur débute son activité ou souhaite tout simplement se lancer. Pour tout le monde, il s’agit là d’un document indispensable qui va vous permettre de démarrer, faire décoller et faire vivre votre entreprise.

Dans le monde du développement web, c’est un peu pareil. Depuis plusieurs années déjà, on parle de plus en plus de Frameworks. Le principe d’un Framework est de vous fournir un cadre de développement qui vous permettra de démarrer plus vite sur des bases solides avec un ensemble d’éléments vous permettant de ne pas réinventer la roue.

On ne peut imaginer un entrepreneur sans son business plan et il m’est difficile d’imaginer de nos jours un développeur ne travaillant pas avec l’aide d’un Framework. Peu importe lequel, peu importe vos préférences, je vous conseille vivement d’en utiliser un.

J’ai fait la mauvaise expérience de zapper cet aspect lors du développement de weesk sûrement par inexpérience et je me rends compte aujourd’hui que ce fut une grosse erreur car une énorme perte de temps.

Pour vous convaincre, quelques avantages d’un Framework :

  • Vous gagnerez énormément de temps de développement car vous aurez simplement besoin d’utiliser des modules déjà créées.
  • Vous bénéficierez de modules testés et éprouvés.
  • Pour de grosses applications, un Framework vous permettra un gain de performance non négligeable surtout si vous brassez 10 000 visiteurs par jour.
  • Vous bénéficierez d’un environnement pérenne et mis à jour régulièrement.

Et une petite liste des Frameworks PHP actuels qui marchent plutôt bien :

  • CakePHP
  • CodeIgniter proposé par Simon
  • PEAR (qui est plus une librairie de Classes)
  • Symfony
  • Zend Framework

15 commentaires sur “Développez vos applications PHP avec un Framework”

  1. Loïc Chollier says:

    Je suis pas sur que sur de grosse appli on gagne franchement en perf puisqu’il faut faire tourner tt l’environnement du framework (cf vdm qui n’utilise pas,de framework il me semble) mas c’est sur que ça fait gagnernun temps fou.
    Pour ma part je n’utilise pas php, ma préférence va donc a ruby on rails.

  2. Simon says:

    Je pense que CodeIgniter mérite d’être ajouté à ta liste. En tout cas, j’ai fortement tendance à le recommander pour les gens qui désirent s’initier aux Frameworks, très simple d’accès et très bien documenté.

  3. Julien says:

    @Loïc J’ai plutôt entendu dire qu’un Framework était déconseillé pour les petits projet car trop gourmand mais qu’au contraire plus il était important mieux c’était. En même temps je débute seulement :ermm:

    @Simon Je l’ai ajouté à la liste

  4. Simon says:

    Le site de Dailymotion est construit sur le Framework Symfony il me semble. Cela me parait être un gros projet et cela tourne plutot bien (même si il doit être vachement tuné). :cheerful:

  5. Thoams says:

    Je suis bien d’accord.

    Pour ma part, je me suis mis à Zend Framework. Je pense qu’à terme, cela me fera gagner énormément de temps.

    Mais pour moi, un framework apporte SURTOUT des normes de développement ;) Du coup :
    - Un ami peut t’aider même sur une semaine, il ne s’agit pas du temps de comprendre comment ça marche.
    - Pas de formation obligatoire si on souhaite employer quelqu’un pour travailler dessus.
    - Revente du produit plus facile, car les acheteurs ne rencontreront pas de problèmes de connaissance.

    Bonne après-midi,
    Thomas.

  6. Julien says:

    @Thoams Je suis d’accord pour l’aide d’un ami.
    Moins sur le fait qu’il ne faut pas former quelqu’un pour travailler dessus. Evidemment le temps de formation / adaptation sera beaucoup moins long mais il exsite.
    Et pour la revente ça me parait être le cas même si je n’ai jamais pu le confirmer pour l’instant. Tu as des retours d’expérience concernant ce point ?

  7. CAD says:

    En effet, c’est vraiment indispensable, je le vois maintenant quand je dois retravailler sur des sites que j’ai construit avec ou sans framework, je passe cinq fois moins de temps maintenant.

    Sinon moi c’est cakePHP que j’utilise, et qui devrait intéresser tous ceux qui font du ruby on rails, c’est un peu le php on rails :)

  8. Joseph says:

    Salut,

    En ce qui concerne les performances, ce n’est pas dit. Par exemple Symfony (sans son système de cache) est plutôt lourd. Alors oui le cache compense largement, mais quid d’un site hyper-dynamique ?

    Cependant comme le dit Thomas, un framework assure à la fois des bonnes pratiques, un gain de temps, et une maintenabilité très agréable quelque soit le projet.

    Attention cependant à CodeIgniter (celui que je connais le mieux). Bien qu’il soit d’une facilité enfantine à prendre en main, on arrive rapidement à certaines limites (à voir si les layouts font leur apparition avec la prochaine version).

    Les frameworks sont aussi des outils pas forcément adaptés à :
    - la création de jeu en ligne
    - le développement d’outils type CMS
    - il doit y en avoir d’autres …

    Malgré tout, si l’on ne souhaite pas utiliser de framework (pour X ou Y raison), il faut penser à récupérer certains composants de frameworks existants. Par exemple, Symfony et Zend sont en fait un assemblage de plusieurs sous-framework (event dispatcher, router, etc.).
    On peut aussi utiliser Doctrine (utilisé dans beaucoup de framework) pour la gestion de la base de données plutôt que d’écrire ses propres routines, qui est disponible comme une librairie à part entière.

    Les frameworks comme Symfony propose aussi un environnement de debugging très intéressant. En outre ils offrent la possibilité de faire des tests unitaires et fonctionnels simplement (plus simplement qu’avec selenium en tout cas ^__^).

    Pour conclure, il faut garder à l’esprit que les frameworks les plus puissants (Zend, Symfony) nécessitent aussi un temps de “formation” avant d’en maîtriser les arcanes.

    Cordialement,
    Joseph.

    PS: je profite de ce commentaire pour proposer un lien, celui du blog de Fabien Potencier (dév principal de Symfony) qui reprend des problématiques de conception / implémentation en PHP : http://fabien.potencier.org/ (eng. Pour ceux que ça intéresseraient…

  9. Julien says:

    @Joseph Merci pour ton commentaire très bien argumenté

  10. Clément says:

    L’utilisation d’un framework n’est pas obligatoire dans certain projet dit unipersonnel comme par exemple VDM (maxime étant le seul dev du site). Un seul dev peut se retrouver dans son code.

    Un framework fournit des règles importantes dans le développement, et permet avec de travailler à plusieurs. Si tout les dev maitrise le framework, la modification et l’ajout de fonctionnalité est beaucoup plus simple sans forcement replonger dans tout le code.

    Dailymotion tourne sur Symfony 2 tuné pour l’occasion (tout les composants/fonctionnalitées ne sont pas encore prêtes).

    Le cache de Symfony est plutôt pas mal et allège le tout (par exemple dans Symfony 2, Zend_Cache sera utilisé).

    Quand on parle de site hyper-dynamique, ce sont les sites qui ont des Likes et de comments dans tout les sens (ou du même genre).

    Pour cela on ne parle pas de framework, ce sont les allez-retour dans la bdd qui sont mis en cause. Pour cela on utilise 2 techno (ou plus) :
    - Memcache qui permet de stocker en ram des données en ensuite de les synchro avec la bdd mysql (1 allez retour par synchro plutôt que 1 par action).
    - NoSQL du type Mongo ou CouchDB qui ont des performance monstrueuse en écriture et lecture.

    Rails est un Framework basé sur Ruby mais c’est un framework quand même ^^ Ruby étant (selon les derniers benchmark un peu plus lent que PHP).

    Je ne vois pas pourquoi on utiliserait pas de frameworks pour les jeux en ligne ou les CMS.

    Prenons l’exemple de WordPress qui est un veau et super chiant a regarder quand on rentre dans le code source. Presque impossible a tuner sans tout casser.
    Les jeux en ligne utilise des framework (dans l’absolu) : Framework de Facebook par exemple.

    Voila pour conclure, Tout peut être fait sans Frameworks mais quel est l’intérêt de réinventer la roue a chaque fois ? c’est plus long sans framework :)

    Voila :)

    Bonne journée

  11. Julien says:

    @Clément Je ne savais pas que wordpress était un vrai bazar. En même temps difficile de repartir de zéro …
    Ils doivent donc se trainer des bout de codes datant des années 90.

  12. Joseph says:

    Salut,

    Merci de tes remarques, je vais me permettre d’y répondre et préciser mon avis notamment sur le jeu en ligne (ça peut entrer dans entrepreneuriat) :

    Les développements spécifiques (type jeux en ligne : travian et ogame sont des jeux en ligne, facebook c’est…hum) utilisent sûrement un framework mais sûrement pas les frameworks cités, en tout cas pas tel quel.

    Pourquoi ? les besoins peuvent parfois dépasser les fonctionnalités / l’architecture offerte(s) par les frameworks et bien que ceux-ci soient souvent extensibles, on est parfois moins contraint de développer soit-même.

    J’utilise un framework pour développer mon jeu en ligne : mais j’ai développé le framework moi-même en utilisant certains composants externes(comme Doctrine).
    Lors d’un projet universitaires, nous avons développé un CMS avec CodeIgniter. Oui nous y sommes arrivés, mais c’est loin d’être propre (mais nous aurions tellement dû l’étendre qu’au final nous n’aurions utilisé que le mvc et le routing…et encore).

    Ce que j’affirme est tout de même sujet à caution dans la mesure où je n’ai encore jamais travaillé dans une entreprise utilisant des frameworks comme Zend ou Symfony, ce n’est que le fruit de travaux / réflexions personnelles. Je n’ai donc pas de véritable recul sur des projets à très grande échelle (pour tout ce qui concerne les performances sur des applications à forte fréquentation notamment, et sur la connaissance des frameworks existants, aussi).

    Ah, et je me corrige sur “l’hyper-dynamicité”, je voulais dire “nécessité de temps réel”.

    Joseph.

  13. clem says:

    Les framework sont des outils qui répondent à des besoins plus ou moins particuliers.

    Il ne faut pas croire que pour développer un site correctement il faut forcemment utiliser un framework, c’est faux. Mais il peut être extrêmement utile dans certains cas, il faut connaitre les différents avantages et inconvénients et choisir en connaissance de cause.

    On véhicule de plus en plus l’idée qu’un bon développeur php est un développeur qui utilise un framework, je crois plutôt que qu’un bon développeur sait quand il faut en utiliser un (et lequel).

    Julien, pour le développement de Weesk, je pense que tu manquais juste d’expérience de développement. Aujourd’hui, avec ou sans framework tu ferais les choses bien différemment, de manière beaucoup plus propre, légère et évolutive.

  14. Julien says:

    Je suis d’accord avec toi Clem mais ce qu’il faut dire c’est qu’un Framework simplifie tellement la vie qu’il est difficile de s’en passer. Ou alors il faut avoir créée son propre Framework, le faire évoluer etc. Mais remarque pour un site vitrine basique, pas besoin non plus de quelque chose d’évolué donc au final nos avis se rejoignent.

  15. Le fait que WordPress soit développé avec les pieds n’est pas inéluctable.
    Le code est le même depuis des années certes, mais prenons l’exemple du Framework Doctrine. Pour le développement de la version 2, ils sont partis “from scratch”.

    Pour 80% des projets Web actuel, l’utilisation de Framework lourd ou non fera l’affaire. Les systèmes de cache APC / Memcache sont largement suffisant pour compenser les fuites de perf.
    Les 20% autres projets ambitieux et ayant du succès sont de type FB, Youtube, eBay… Pour ceux-ci, un développement From Scratch avec un Framework développé sur mesure est bien mieux adapté. A ce niveau, l’argent n’est plus le gros problème et l’équipe de développement peut-être conséquente.

    Armetiz.

Vous avez la parole :

Retourner au début