1 Introduction
Symfony est un framework MVC libre écrit en PHP 5. En tant que framework, il facilite et accélère le développement de sites et d'applications Internet et Intranet.
2 Prérequis
Avant de commencer, il va nous falloir un serveur web de votre choix (je prends Apache2) et un serveur de base de données (MySQL) :
aptitude
|
aptitude install apache2 libapache2-mod-php5 php5 mysql-server
|
Symfony fournit un petit utilitaire permettant de tester son serveur :
|
> wget http://sf-to.org/1.4/check.php
> php check_configuration.php
********************************
* *
* symfony requirements check *
* *
********************************
php.ini used by PHP: /etc/php5/cli/php.ini
** WARNING **
* The PHP CLI can use a different php.ini file
* than the one used with your web server.
* If this is the case, please launch this
* utility from your web server.
** WARNING **
** Mandatory requirements **
OK PHP version is at least 5.2.4 (5.2.6-1+lenny8)
** Optional checks **
OK PDO is installed
[[WARNING]] PDO has some drivers installed: : FAILED
*** Install PDO drivers (mandatory for Propel and Doctrine) ***
OK PHP-XML module is installed
[[WARNING]] XSL module is installed: FAILED
*** Install and enable the XSL module (recommended for Propel) ***
OK The token_get_all() function is available
OK The mb_strlen() function is available
OK The iconv() function is available
OK The utf8_decode() is available
OK The posix_isatty() is available
[[WARNING]] A PHP accelerator is installed: FAILED
*** Install a PHP accelerator like APC (highly recommended) ***
[[WARNING]] php.ini has short_open_tag set to off: FAILED
*** Set it to off in php.ini ***
[[WARNING]] php.ini has magic_quotes_gpc set to off: FAILED
*** Set it to off in php.ini ***
OK php.ini has register_globals set to off
OK php.ini has session.auto_start set to off
OK PHP version is not 5.2.9
|
Là clairement, il y a des petits soucis. Nous allons donc régler tout ceci maintenant :
|
aptitude install php5-mysql php5-xsl php-apc
perl -pe 's/^(short_open_tag = )on/\1off/i' < /etc/php5/cli/php.ini > /tmp/sym_php_changes_tmp
perl -pe 's/^(magic_quotes_gpc = )on/\1off/i' < /tmp/sym_php_changes_tmp > /etc/php5/cli/php.ini
|
Maintenant, si on refait un petit coup de vérification :
php
|
> php check_configuration.php
********************************
* *
* symfony requirements check *
* *
********************************
php.ini used by PHP: /etc/php5/cli/php.ini
** WARNING **
* The PHP CLI can use a different php.ini file
* than the one used with your web server.
* If this is the case, please launch this
* utility from your web server.
** WARNING **
** Mandatory requirements **
OK PHP version is at least 5.2.4 (5.2.6-1+lenny8)
** Optional checks **
OK PDO is installed
OK PDO has some drivers installed: mysql
OK PHP-XML module is installed
OK XSL module is installed
OK The token_get_all() function is available
OK The mb_strlen() function is available
OK The iconv() function is available
OK The utf8_decode() is available
OK The posix_isatty() is available
OK A PHP accelerator is installed
OK php.ini has short_open_tag set to off
OK php.ini has magic_quotes_gpc set to off
OK php.ini has register_globals set to off
OK php.ini has session.auto_start set to off
OK PHP version is not 5.2.9
|
Tout est ok :-)
3 Installation
Il y a plusieurs solutions pour installer Symfony, j'ai personnellement choisis SVN, mais PEAR aurait été tout aussi bien, voir la Sandbox (tout en un). Pour cela, il va falloir que j'ai SVN d'installé :
aptitude
|
aptitude install subversion
|
Ensuite, nous allons donc créer un espace pour placer symfony :
Puis nous allons vérifier que tout est bien installé :
symfony
|
symfony/data/bin/symfony -V
symfony version 1.4.5-DEV (/usr/share/symfony/lib)
|
Youpi :-)
4 Configuration
Nous allons actualiser notre PATH histoire d'avoir de nouveaux binaires facilement utilisable :
export
|
export PATH=$PATH:/usr/share/symfony/data/bin
|
4.1 Initialisation d'un nouveau projet
Imaginons que j'ai un projet qui s'appelle 'phpwol', je vais donc créer mon dossier de projet et l'initialiser :
|
mkdir -p /var/www/phpwol
cd /var/www/phpwol
symfony generate:project phpwol
|
Il y a un paquet de choses qui viennent de se créer :
Répertoire
|
Description
|
apps/
|
Accueille toutes les applications du projet
|
cache/
|
Les fichiers mis en cache par le framework
|
config/
|
Les fichiers de configuration du projet
|
data/
|
Les fichiers de données comme les jeux de données initiales
|
lib/
|
Les bibliothèque et les classes du projet
|
log/
|
Les fichiers log du framework
|
plugins/
|
Les plugins installés
|
test/
|
Les fichiers de test unitaire et fonctionnel
|
web/
|
Le répertoire racine Web (voir ci-dessous)
|
5 Ressources
http://www.symfony-project.org/getting-started/1_4/fr/
http://www.lafermeduweb.net/tutorial/symfony-creer-un-site-web-avec-le-framework-php-symfony-14.html