Que vous dire de plus ?
subversion
Mettre de la couleur sur votre svn diff
25/08/09
Nous allons commencer par installer le package colordiff avec macport (Macintosh).
sudo port install colordiff
Ensuite, nous ajoutons un alias svnd dans le fichier /etc/profile
alias svnd='svn diff --diff-cmd /opt/local/bin/colordiff'
Nous allons recharger la configuration avec la commande suivante:
source /etc/profile
Vous avez également la possibilité de personnaliser la configuration de colordiff. Pour cela, nous allons copier colordiffrc dans notre home:
cp /opt/local/etc/colordiffrc ~/.colordiffrc
Nous pouvons dés maintenant éditer ce fichier et personnaliser les paramètres
Par défaut, nous avons les valeurs suivantes:
plain=off newtext=blue oldtext=red diffstuff=magenta cvsstuff=green
Nous allons les changer en:
plain=off newtext=yellow oldtext=red diffstuff=magenta cvsstuff=green
En tapant la commande suivante:
home$ svnd 19-Mastering-Symfony-s-Configuration-Files.txt
Vous devriez voir cela comme résultat final:

Installation de mon environnement de développement web avec MacPorts
5/07/09
Ayant reçu mon nouveau portable Macintosh, je me suis posé la question suivante: « Faut-il tout recompiler mes éléments ou les installer avec macports ? ». J’ai décidé de choisir la seconde solution pour me faciliter les choses. Je vais vous détailler ci-dessous l’installation des éléments suivants:
- MacPorts
- Apache
- Subversion et dav_svn
- MySql
- php
1. MacPorts
Vous trouvez l’installeur directement sur le site web macports. Vous avez plusieurs possibilités offertes. Il vous suffit de lire la page install du site.
2. Installation du serveur Apache
sudo port install apache2
Démarrage du serveur:
sudo /opt/local/apache2/bin/apachectl start
Pour lancer automatiquement le serveur au démarrage, il suffit de lancer la commande suivante:
sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
Il ne reste plus qu’à changer votre configuration en éditant le fichier httpd.conf.
Dans mon cas, j’ai décidé de mettre mon dossier root à la racine de mon disque (/www).
Nous en avons fini avec l’installation d’apache
3. Installation de Subversion et dav_svn
J’ai décidé d’installer un serveur subversion directement sur ma machine pour pouvoir stocker le suivi des changement dans mes projets. Si vous ne voulez pas le faire, il suffit de supprimer l’option « +mod_dav_svn ».
sudo port install subversion +mod_dav_svn
Après l’installation des éléments, il nous suffit de charger le module dav avec la commande apxs:
cd /opt/local/apache2/modules sudo /opt/local/apache2/bin/apxs -a -e -n "dav_svn" mod_dav_svn.so
L’installation est toujours aussi simple.
4. Installation de MySql
sudo port install mysql5-server
Installation des bases nécessaires à MySql:
sudo -u mysql mysql_install_db5
Démarrage du serveur:
sudo /opt/local/lib/mysql5/bin/mysqld_safe &
Configuration de mysql:
sudo /opt/local/lib/mysql5/bin/mysql_secure_installation
Pour lancer automatiquement le serveur au démarrage, il suffit de lancer la commande suivante:
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
Je vais maintenant personnaliser un peu mon installation pour fixer les paramètres par défaut. Pour cela , je vais créer un fichier my.cnf dans le dossier /etc avec le contenu suivant:
[client] port=3306 default-character-set=utf8 [mysqld] port=3306 default-character-set=utf8 collation-server=utf8_unicode_ci default-collation=utf8_unicode_ci default-storage_engine = InnoDB default_table_type = InnoDB
Toujours aucun problème lors de l’installation de MySql.
5. Installation de PHP
Tous les options ci-dessous ne sont pas nécessaires. Vous pouvez choisir uniquement les paquets dont vous avez besoin.
sudo port install php5 sudo port install php5-curl php5-gd php5-iconv php5-imap php5-mbstring php5-mcrypt php5-mysql php5-sockets php5-solr php5-sqlite php5-tidy php5-zip
Nous allons choisir notre fichier php.ini. Comme je suis sur une machine de dev, je vais choisir le php.ini-dist
sudo cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini
J’ai également changé quelques paramètres dans mon fichier php.ini:
short_open_tag = Off post_max_size = 50M magic_quotes_gpc = Off upload_max_filesize = 50M ;extension_dir = "./" (ligne commentée) pdo_mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock date.timezone = Europe/Zurich
Il ne reste plus qu’à charger le module php dans apache:
cd /opt/local/apache2/modules sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
Si vous désirez de la couleur en ligne de commande php, vous devez ajouter un module additionnel:
sudo port install php5-posix
Dès à présent, vous retrouverez des commandes sexy
6. Configuration Apache
Pour qu’Apache prenne en compte les extensions .php et .phps, nous allons inclure la ligne suivante dans le fichier httpd.conf
Pour charger la configuration des virtualhosts, il faut activer la ligne suivante:
Include conf/extra/httpd-vhosts.conf
Pour charger la configuration php, il faut ajouter la ligne suivante:
Include conf/extra/mod_php.conf
Dans le fichier httpd-vhosts.conf, j’ai laissé uniquement les choses suivantes:
NameVirtualHost *:80 Include conf/vhosts/*.conf
Nous pouvons maintenant créer le dossier vhosts dans le dossier conf d’apache pour y mettre nos fichiers domaines
cd /opt/local/apache2/conf sudo mkdir vhosts cd vhosts
Dans mon cas, j’ai choisi de mettre tous les fichiers des divers virtualhosts dans le dossier /www/vitualhosts/ à la racine de mon disque:
cd / sudo mkdir -p /www/virtualhosts chmod -R 777 /www
J’ai ensuite réaliser le virtualhost « default »:
cd /www/virtualhosts mkdir default chmod 777 default cd /opt/local/apache2/conf/vhosts touch default.conf
Voici le contenu de mon virtualhost « default »
<VirtualHost *:80>
ServerName macbookpro.local
DocumentRoot /www/virtualhosts/default
DirectoryIndex index.php
<Directory "/www/virtualhosts/default">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
Remarque: macbookpro.local est le nom défini dans les préférences réseau
J’utilise ce domaine « default » par exemple, pour y mettre mon phpmyadmin.
Vous êtes maintenant prêt pour réaliser vos propres virtualhosts. Tous vos configurations localisées dans le dossier vhosts seront chargées au prochain redémarrage d’apache.
7. Optionnel
Modules additionnels pour php:
sudo port install php5-apc sudo port install php5-xdebug
Dans mon domaine d’activités professionnelles, j’utilise également un client yaz qui est lui aussi interfaçable avec php:
sudo port install php5-yaz
Voilà. Mon installation est terminée. N’hésitez pas à me poser des questions avec le formulaire ci-dessous.
Initialisation d’un projet symfony/doctrine sous subversion
19/03/09
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
