Traductions de cette page?:

Utilisation de DBDesigner,Propel,Agavi pour créer une application en PHP

Donc, vous voilà devant cette nouvelle tâche : écrire une énième application web pour gérer un énième problème. Pourtant, la dernière fois, vous aviez fait attention, vous aviez pris les résolutions suivantes :

  1. Faire du php objet (php5)
  2. Rendre les classes génériques et réutilisables
  3. Bien structurer votre code

Mais bien-sûr, cette nouvelle application est subtilement différente de l'ancienne :

  1. La base de données n'est pas disponible sur le nouveau serveur
  2. Le php installé n'est pas le php 5.6.0.12.2.1.4.5 mais le 5.6.0.12.3.1.4.5
  3. Vous ne comprenez plus rien au code que vous avez écrit il y a 4 semaines. ^_^

Pour toutes ces raisons, il est plus que temps de penser à utiliser des Frameworks. Un framework, est un mot bien compliqué pour désigner le travail fait généreusement par des spécialistes permettant à des néophytes d'utiliser toute la puissance de concepts plutôt complexes, sans avoir à les maîtriser à 100%. En général, ces frameworks, ont un certain coût d'apprentissage, plus ou moins long en fonction de leur complexité. Mais une fois ce coût dépassé, les gains deviennent extrêmement intéressants.

Dans notre cas, nous allons voir deux Frameworks et un Outil.

  1. DBDesigner : un outil permettant de “dessiner” la structure de sa base de données.
  2. Propel : Un framework permettant de générer toutes les classes d'accès à la base de données.
  3. Agavi : Un framework de type MVC, permettant une structuration simple et cohérente de notre application web.

Il est, à mon avis, important de lire le tutoriel en entier, et de ne pas passer à une étape ultérieure sans avoir bien compris celle qui la précède. Si vous avez des questions, des remarques, n'hésitez pas à m'en faire part ou à laisser un message.

Prérequis

Je suppose que vous avez les connaissances, les logiciels et les accès suivants :

  • Vous n'êtes pas totalement novice en matière de programmation PHP/Objet et de base de données relationnelles
  • Pour un développement sous Linux, vous avez un accès shell à une machines Unix/Linux avec un compte administrateur
  • Vous avez accès à une machine disposant d'une base de donnée
  • Vous avez un serveur web Apache2/PHP5

La contrainte concernant le compte administrateur peut être contournée si vous faite une installation locale de Agavi/Propel, ou si Agavi/Propel est déjà présent sur le serveur.

Si vous ne disposez que d'un accès à un serveur mutualisé, vous pouvez consulter ce document qui traite de l'installation sur un serveur mutualisé free.fr. Il peut facilement servir d'inspiration pour un autre provider.

Installation

Maintenant, commençons par installer nos outils :

Travaux pratiques

Nous allons créer une application web simple. Disons, un bête petit forum. Quels sont les éléments d'un forum ?

  1. Des utilisateurs
  2. Des forums
  3. Des discussions
  4. Des messages

Un forum est composé d'un ensemble de discussions, une discussion est un message d'ouverture de fil de discussion. Un message fait partie d'une discussion. Pour pouvoir poster un message (ou ouvrir une nouvelle discussion) il faut que l'utilisateur se soit authentifié, les messages peuvent être lus par un inconnu.

Avec ces spécifications simplifiées, il doit être possible d'obtenir une application simpliste permettant de gérer un forum.

Mise en place

Création de l'arborescence de base.

Spécification du modèle de données

Avant de commencer, essayons de voir les données dont nous avons besoin.

Conception de la base

Il est possible d'écrire directement la spécification de la base en XML dans le format de propel. Cependant DBDDesigner est tout de même plus convivial.

Utilisation du script Agavi

Agavi est fourni avec un script utilitaire permettant d'automatiser les tâches les plus courantes. Ainsi, vous avez un squelette d'application créé dans lequel il vous suffit de remplir les parties nécessaires.

Utilisation de Propel

Maintenant que nous avons notre base, comment utiliser Propel pour la générer.

Agavi et Propel

Les classes générées par Propel, peuvent être facilement utilisées dans Agavi.

L'application ForumPHP

Voila, tous nos outils sont maintenant prêts, nous pouvons passer aux choses sérieuses.

~~DISCUSSION~~

 
/opt/dokuwiki/data/pages/doc/develphp.txt · Dernière modification: 2010/03/09 18:23 par fabrice
 
RSS - 2007 © CoreDmp