développement web



14 années d'expérience & d'innovations
au service de vos projets web et Internet



Quel framework ?

ven 12 sept. 2008 - 11h49

Avant d'aller plus loin il est nécessaire de mettre en place tout l'environnement de développement du projet.

PHP étant un langage suffisamment mature, il existe pleins de solutions pour se simplifier la vie, notamment les frameworks.
Ces derniers proposent des briques (le plus souvent sous forme de classes) qui permettent de réaliser des taches bien spécifiques avec l'avantage d'être bien réalisées. Elles ont été pensées par des personnes qui ont une bonne expérience du développement web et de ses contraintes.

Il existe des briques pour gérer l'authentification et les droits sur un projet, pour générer et/ou contrôler des données de formulaires, mettre en place l'internationalisation, gérer les sessions, mettre en place un système de cache ...
Au delà de ces briques beaucoup de frameworks proposent de fonctionner sous l'architecture ou design pattern MVC : Model View Controler, ce pattern propose de séparer l'application en 3 couches :

  •   Les données : le Model, accès aux données d'une base de donnée, d'un fichier ...
  •   La vue : View,tout ce qui est représentation visuelle, basé sur des templates par exemple.
  •   Le code métier : Le Controller, en gros c'est le code qui va permettre à l'application de mettre en place les règles métier à partir des données, les traiter pour les envoyer à la vue, mais aussi de récupérer des informations de la vue pour mettre à jour les données.

Les avantages de l'utilisation d'un framework sont indéniables :

  • Gain de temps : on ne réinvente plus la roue à chaque fois, moins de bugs de base, le code généré si il est bien pensé peut être facilement réutilisé.
  • Sécurité accrue : l'utilisation d'un framework impose un minimum de règle de programmation et en utilisant les raccourcis offerts par le framework on évite des problèmes de sécurité rencontrés par le passé
  • Meilleur organisation du travail : le découpage en couche offert par le modèle MVC permet facilement de faire travailler une équipe par couche.

Les inconvénients :

  • Il faut une période d'adaptation pour comprendre le fonctionnement du framework et son utilisation, c'est une consommation de temps nécessaire au vue du gain apporté avec l'expérience.
  • La lenteur d'exécution, les framework en ajoutant des couches d'abstraction supplémentaires ajoutent de la lourdeur dans l'exécution du programme, surtout si l'on décide d'utiliser le pattern MVC. Ceci peut être amélioré en utilisant un système de cache (souvent intégré au framework).

Dans notre cas l'architecture MVC ne sera pas retenu étant donné le manque de temps pour tester l'impacte sur les performances et le temps d'adaptation des développeurs pour sa mise en oeuvre. Surtout que nous avons notre propre façon de découper le code en couches qui ralenti peu l'exécution.

Voici une liste des frameworks que nous avons envisagé, c'est totalement arbitraire car il en existe tellement qu'il ne serait pas raisonnable de s'y intéresser à tous :

  • Symfony : Il faut passer par des lignes de commandes pour mettre en place un projet, apparemment uniquement MVC.
  • Zend Framework
  • Code Igniter : En PHP 4donc pas intéressant pour avoir de bonnes performances sous PHP 5, utilise le pattern MVC.
  • Jelix : Très intéressant, juste des doutes quand à la pérennité, n'étant pas encore soutenu par de grosses entreprises.
  • J'ai retenu Zend Framework en voici les raisons :
  • Il a été créé par une équipe solide et bien établie qui est à l'origine du moteur de PHP, le Zend Engine. Ce qui est synonyme de pérénité et de robustesse
  • Le choix laissé sur le fait d'utiliser le MVC ou non.

Il intègre le framework Ajax Dojo qui on le verra plus tard a été retenu pour tous ce qui va touché aux interfaces utilisateurs avancées.

 



0 950 339 339

nous écrire

293 rue de longpaon - 76160 Darnétal