08 Oct 2008, Tagged in : framework, php, and symfony

Voici comment vont s’architecturer les différentes parties du développement de la shoutbox :

  • prototypage
  • personnalisation du comportement du modèle et de l’interface
  • petite touche d’ajax avec jquery

Je sous-entend que symfony est installé pour commencer.

Création du squelette du projet

mkdir shoutbox
cd shoutbox
symfony generate:project shoutbox 

Nous voici avec le squelette de base. Créons maintenant l’application frontend et le module shoutbox

symfony generate:app frontend 
symfony generate:module frontend shoutbox 

Le contrôleur shoutbox a été créé. Nous pouvons passer à la définition du modèle

Définition du modèle

Nous allons décrire le modèle dans le fichier ”config/schema.yml”.

propel:
  shoutbox_message:
    _attributes: { phpName: Message }     
    id: ~
    content:     longvarchar     
    created_at: ~

Note : Certains noms de colonnes sont interprétés par Symfony :

  • ”id” va générer une clef primaire
  • ”created_at” génère un champ qui contiendra le timestamp de sa création
  • ”updated_at” génère un champ qui contiendra le timestamp de sa modification
  • enfin les colonnes terminant par ”_id” seront des clefs externes vers une table qui sera automatiquement détecté

La commande symfony va maintenant se charger de créer les classes php correspondantes.

symfony propel:build-model 

Passons à la configuration de la base puis à la modification du schéma :

symfony configure:database "mysql://shoutbox:mdpshoutbox@localhost/shoutbox" # génération du script de création de base 
symfony propel:build-sql # insertion du script 
symfony propel:insert-sql

Génération du formulaire

symfony propel:build-forms 

Écriture du contrôleur et de la vue

Cette étape peut aussi être générée :

symfony propel:generate-crud frontend messages Message 

Nous voilà avec une application qui permet de créer/lire/modifier et supprimer des messages (accessible par l’url http://mon.appli/messages). Dans le billet suivant nous personnaliserons un peu ce qui a été généré. Mais il faut noter que créer ce prototype d’application tout en lisant la doc et écrivant ce billet ne m’a pas pris plus qu’un quart d’heure ! TOUTES LES ÉTAPES SONT DÉTAILLÉES ICI ! rien ne manque.