La première phase consiste à créer notre dossier http. Mon path par défaut pour cette exemple est /www/virtualhosts. Les noms entre crochets sont utilisés pour un élément variable.
mkdir /www/virtualhosts/[projet]
Nous allons maintenant nous déplacer dans ce dossier et le déchargement de la base depuis subversion
cd /www/virtualhosts/[projet]
svn co http://[svn.server]/repos/[project]/trunk .
Nous pouvons maintenant installer le framework symfony dans notre dossier http
/www/svn/symfony/1.2/data/bin/symfony generate:project [NomDuProjet]
Nous allons maintenant configurer la base de donnée avec doctrine:
./symfony configure:database --name=doctrine --class=sfDoctrineDatabase "mysql:host=localhost;dbname=database" user pass
Modification du fichier databases.yml:
cd config/
Suppression des lignes concernant Propel dans le fichier databases.yml
(ne laisser que la config doctrine)
Nous renommons le fichier databases.yml avant de l’inclure dans le repository
mv databases.yml databases.yml_dist
Activation du plugin sfDoctrinePlugin
Ouvrir le fichier ProjectConfiguration.class.php et changer sfDoctrinePlugin par sfPropelPlugin
Suppression des fichiers inutiles
rm -fr propel.ini
rm -fr schema.yml
Création du dossier doctrine qui va recevoir les fichiers schéma
mkdir doctrine
Suppression du dossier sfPropelPlugin du dossier web et activation du dossier sfDoctrinePlugin
cd ../web/
unlink sfPropelPlugin
cd ..
./symfony plugin:publish-assets
Prochaine étape, vider les dossiers cache et log
rm -fr cache/*
rm -fr log/*
Ajout de notre projet dans subversion
svn add *
Nous allons ignorer les fichiers des dossiers cache et log
svn pe svn:ignore cache
> *
svn pe svn:ignore log
> *
Nous mettons également le fichier databases.yml en ignore pour ne pas tenir compte de la configuration locale
svn pe svn:ignore config
> databases.yml
Création du dossier sql recevant les fichiers sql de doctrine. Je considère que ces fichiers ne sont pas à versionner. Nous allons également les ignorer.
mkdir data/sql
svn pe svn:ignore data/sql
> *
Nous allons inclure symfony dans notre projet
svn mkdir lib/vendor
svn pe svn:externals lib/vendor
> symfony http://svn.symfony-project.com/branches/1.2
Transfert de notre structure initiale sur le serveur subversion
svn ci -m 'Projet initial'
Nous allons maintenant lancer un update pour charger le framework symfony qui a été précédemment accroché dans le dossier lib/vendor
svn up
Nous allons changer le chemin d’accès aux librairies symfony en modifiant le fichier ProjectConfiguration.class.php du dossier config du projet
Changer:
require_once '/www/svn/symfony/1.2/lib/autoload/sfCoreAutoload.class.php'
Par:
require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';
Nous allons publié notre modification sur le serveur subversion
svn ci -m "Changement de la configuration"
Il nous reste une dernière chose à faire pour que notre projet fonctionne. Nous allons copier le fichier databases.yml_dist et le renommer avant de le modifier pour tenir compte de notre configuration locale
cp config/databases.yml_dist config/databases.yml
Il ne reste plus qu’à initialiser notre application avant de pouvoir développer
./symfony generate:app frontend --csrf-secret=CrSfS3Cr3t --escaping-strategy=on
Ajout de l’application à subversion
svn add test/functional/frontend apps/frontend web/frontend_dev.php web/index.php
Publication sur le serveur subversion
svn ci -m "Initialisation de l'application frontend"
J’espère que cette démarche vous permettra de simplifier l’installation de vos projets. Je reste à votre disposition si vous avez des questions sur le sujet.
Références:
– Le Framework Symfony
– l’ORM Doctrine
– Subversion