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 :
Mais bien-sûr, cette nouvelle application est subtilement différente de l'ancienne :
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.
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.
Je suppose que vous avez les connaissances, les logiciels et les accès suivants :
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.
Maintenant, commençons par installer nos outils :
Nous allons créer une application web simple. Disons, un bête petit forum. Quels sont les éléments d'un forum ?
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.
Création de l'arborescence de base.
Avant de commencer, essayons de voir les données dont nous avons besoin.
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.
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.
Maintenant que nous avons notre base, comment utiliser Propel pour la générer.
Les classes générées par Propel, peuvent être facilement utilisées dans Agavi.
Voila, tous nos outils sont maintenant prêts, nous pouvons passer aux choses sérieuses.
~~DISCUSSION~~