Symfony : Installation et configuration du framework PHP

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

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) :

Command aptitude
aptitude install apache2 libapache2-mod-php5 php5 mysql-server

Symfony fournit un petit utilitaire permettant de tester son serveur :

Command
> 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 :

Command
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 :

Command 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é :

Command aptitude
aptitude install subversion

Ensuite, nous allons donc créer un espace pour placer symfony :

Command
cd /usr/share
svn checkout http://svn.symfony-project.com/branches/1.4/
mv 1.4 symfony

Puis nous allons vérifier que tout est bien installé :

Command 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 :

Command 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 :

Command
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