[1] : Exemple de fichier config/schema.yml :
propel:
societe_projet:
_attributes: { phpName: Projet }
id:
nom: varchar(255)
created_at:
weblog_comment:
_attributes: { phpName: Employe }
nom: varchar(255)
prenom: varchar(255)
anciennete: tinyint
created_at:
[2] : Les classes générées pour ce schéma :
/lib/model/om/BaseProjet.php
/lib/model/om/BaseProjetPeer.php
/lib/model/om/BaseEmploye.php
/lib/model/om/BaseEmployePeer.php
/lib/model/Projet.php
/lib/model/ProjetPeer.php
/lib/model/Employe.php
/lib/model/EmployePeer.php
[3] : Utilisation de la classe Projet :
$larbin = new Employe();
$larbin->setNom('Grüchtufruu');
$larbin->setAnciennete(25);
|
Mise en place d'un projet
Toute la mise en place se fait ainsi à partir de Symfony, depuis la racine du projet. Une fois le projet mis en place, notamment le scaffolding, c'est-à-dire la liaison avec la base de données, le développement ira modifier les templates et la logique directement dans les dossiers et fichiers.
Tout comme pour Rails, les fichiers de configuration sont au format YAML. Notamment, le fichier databases.yml , situé dans le dossier config/ , réalisera la liaison réelle entre Symfony et SQLite (par défaut), par le biais de Propel. Le schéma de la base de données doit être créé par Propel, à l'aide d'un fichier schema.yml qui définit les tables.
Ce fichier créé et placé dans le dossier config/ , Symfony peut créer la base liée à l'application via l'opération symfony propel-build-model . Cela aura pour effet de créer non seulement les tables SQL, mais également les classes d'accès à la base de données. Les fichiers BaseXXX.php sont hérités par les XXX.php . On pourra ainsi modifier les XXX.php sans affecter les classes principales.
Les méthodes sont ensuite le reflet du schéma, avec get et set : setNom() , getNom() , setAnciennete() ...
|