Development

sfBookFRinstallation

You must first sign up to be able to contribute.

Installer symfony

Vue d'ensemble

Ce chapitre décrit les étapes pour installer le framework symfony à la fois, à partir de l'archive 'sandbox', depuis un package PEAR ou manuellement depuis le répertoire du code source.

Introduction

Le framework symfony est un ensemble de fichiers écrits en PHP. Un projet basé sur symfony utilise ces fichier, par conséquent, installer symfony signifie simplement obtenir ces fichiers et les rendre disponible pour votre projet.

Symfony peut être utilisé pour un ou plusieurs projets. Si vous travaillez sur un projet unique, vous souhaiterez probablement inclure le framework dans l'application que vous développez. Au contraire, si vous choisisser d'utiliser symfony pour plus d'un projet, vous préfererez garder tous les fichiers de symfony à un endroit précis pour faciliter les mises à jour.

De plus, lors du développement d'une application, vous devrez probablement installer symfony deux fois: une première fois sur votre plateforme de développement et la seconde sur le serveur d'hébergement (sauf si symfony est déjà disponible sur le serveur).

Tous ces besoins différents ont des réponses différentes, c'est pourquoi vous avez plusieurs alternatives pour installer symfony :

  • L'archive Sandbox est un projet Symfony vide où toutes les librairies requises sont déjà incluses, et les configurations de base sont déjà faites. Ceci est principalement fait pour les personnes débutant avec Symfony, qui veulent jouer avec ce framework ou essayer les tutoriaux sans rien installer.
  • L'installation PEAR est recommandée pour ceux qui veulent faire tourner plusieurs projets basés sur Symfony, avec une façon simple d'effectuer les mises à jour. Une version 1.4.0 ou supérieure de PEAR est requise, qui est fournie avec la plupart des distributions PHP.
  • L'installation manuelle est signalée comment devant être utilisée uniquement par les développeurs PHP expérimentés, qui veulent pouvoir bénéficier des derniers patchs et ajouter eux-mêmes des dispositifs.

Notez que le framework Symfony évolue rapidement, et qu'une version stable peut sortir quelques jours après votre première installation. Vous devez avoir en tête que la mise à jour est un souci majeur, et que la première solution n'est pas recommendé si vous développez un vrai site Web. En fait, une application développée avec le "Sandbox" ne peut pas être mises à jour facilement.

Pré-requis

Pour utiliser Symfony, vous avez besoin de PHP5 et d'un serveur web installé. Si vous voulez utilisez l'installation PEAR, vous aurez aussi besoin de PEAR. Si vous projetez d'utiliser des données persistentes, vous aurez besoin d'une base de donnée. Symfony est compatible avec MySQL, PostgreSQL, Oracle, MSSQL, et toutes les autres bases de données ayant un driver Creole.

Note: Vous pouvez de nombreux packages LAMP disponible au téléchargement, qui contiennent un serveur Apache, une base de donnée MySQL et PHP, le tout empaquetté ensemble et configuré pour une plateforme donné (XAMPP pour de nombreuses plateformes, MAMP pour Macintoch, WAMP pour Windows, etc.). Si vous n'avez pas PHP5 d'installé, c'est probablement la meilleure option pour débuter.

Normalement les distributions standards de PHP5 fonctionnent parfaitement avec Symfony. Cependant, comme toutes les installations sont différentes, et parce que beaucoup de développeurs compilent PHP eux-même, il arrive parfois que votre serveur Web lance des erreurs parce que des composants de PHP sont manquants. Si vous n'arrivez pas à faire fonctionner Symfony, cherchez une solution sur le forum installation, où beaucoup de cas individuels sont résolus et peuvent vous aider à résoudre vos problèmes.

Note: Certains packages comprennent parfois PHP4 et PHP5. Symfony ne fonctionne qu'avec PHP5. Pour obtenir la version de PHP que vous utilisez, tapez la ligne de commande suivante:

        $ php -v

L'archive Sandbox

Le Sandbox est une simple archive de fichiers. Il contient un projet Symfony vide où toutes les librairies requises (Symfony, pake, creole, propel et phing) sont déjà incluses. Pour l'installer, ouvrez l'archive dans le répertoire web de votre serveur (habituellement web/). Il fonctionnera directement sans configuration et sans aucun package additionnel.

L'archive Sandbox est prévue pour être utiliser un ordinateur local, pas réellement pour développer des applications complexes qui sont destinées à être utilisées sur le web. Cependant, la version de Symfony fournie avec l'archive Sandbox est pleinement fonctionnelle et équivalente à ce que vous pouvez installer avec PEAR. Prenez garder à ce que l'archive Sandbox ne peut pas upgradée facilement.

Récupérez l'archive Sandbox ici: http://www.symfony-project.com/get/sf_sandbox.tgz. Après ouverture de l'archive, testez le Sandbox avec l'url suivante:

http://localhost/sf_sandbox/web/ Vous devriez voir une page de congratulations.

Si vous êtes dans le répertoire sf_sandbox, vous pouvez utiliser la ligne de commande pour effectuer les opérations courantes d'entretien. Par exemple pour vider le cache:

$ ./symfony.sh clear-cache                      (*nix)
symfony clear-cache                             (Windows)

Pour découvrir toutes les actions disponibles de la commande en ligne Symfony, tapez:

$ ./symfony.sh -T                               (*nix)
symfony -T

Se référer au fichier README pour plus d'informations.

Après avoir télécharger l'archive Sandbox, vous pourrez vouloir suivre le tutoriel Mon premier projet (My first project) pour découvrir les bases du développement Symfony.

Installer Symfony à partir du package PEAR

PEAR setup

PEAR est utilisé par PHP pour installer des librairies à partir d'un dépôt central. Le projet Symfony a son propre dépôt, ou canal. Notez que les canaux sont seulement disponible depuis la version 1.4.0 de PEAR, vous devrez donc upgrader votre version si elle est trop ancienne.

$ pear upgrade PEAR

La première chose à faire est d'ajouter le canal Symfony:

$ pear channel-discover pear.symfony-project.com

Pour voir les librairies disponibles sur ce canal:

$ pear remote-list -c symfony

Installation de Symfony

Maintenant vous êtes prêt pour installer la dernière version stable de Symfony et toutes ces dépendances avec:

$ pear install symfony/symfony

C'est fait: Symfony est installée. Vous pouvez maintenant créer un nouveau projet avec l'outil de ligne de commande Symfony et utiliser les classes et méthodes des librairies.

Symfony a besoin de quelques autres packages pour focntionner; certains sont inclus dans l'installation, et d'autres recquièrent que vous les installiez si ils ne sont pas présents:

  • pake: installé automatiquement. Vous apprendrez plus sur l'utilitaire Pake dans le prochain chapitre.
  • creole: installé automatiquement (utilisé l'accès aux bases de données)
  • propel: installé automatiquement (utilisé le mapping object/relational)
  • phing: recquiert une installation manuelle
          $ pear install http://phing.info/pear/phing-current.tgz
    

Pour avoir une vue d'ensemble de toutes les taches que vous pouvez directement effectuer avec l'outil de commande en ligne, tapez:

$ symfony -T

Où sont les fichiers Symfony

Les librairies Symfony sont maintenant installé dans:

$php_dir/symfony/ librairies principales $data_dir/symfony/ squelette des applications Symfony, des modules par défault et de la configuration $doc_dir/symfony/ documentation $test_dir/symfony/ tests unitaires

Les variables _dir sont une partie de votre configuration PEAR. Pour voir leur valeur, tapez;

$ pear config-show

En fait, la localisation exacte des fichiers n'est pas vraiment importante, depuis que l'installation vous offre un nouvel éxécutable, symfony, qui fera tout le travail pour vous (création de projet, installation de l'application et initialisation, etc.). Seul le répertoire $doc_dir sera nécessaire dans la configuration de votre serveur Web, puiqu'il contient quelques fichiers de base (css et images) qui peuvent être requis par certaines pages des projets Symfony. Cette configuration sera détaillé dans le prochain chapitre.

Pour mémoire, les localisations par défault pour Unix et Windows sont les suivantes: Unix Windows - usr/local/lib/php/symfony/ c:/Program Files/php/pear/symfony/ main executable, main libraries usr/local/lib/php/data/symfony/ c:/Program Files/php/pear/data/symfony/ skeleton of symfony applications usr/local/lib/php/doc/symfony/ c:/Program Files/php/pear/doc/symfony/ documentation usr/local/lib/php/test/symfony/ c:/Program Files/php/pear/test/symfony/ unit tests Getting nightly builds

The process described above will install the latest stable version. In order to have the latest bug corrections between two stable versions, you may wish to install the latest nightly build. These builds are published in the symfony channel with a 'beta' tag, and you can install them with:

$ pear install symfony/symfony-beta

If you already have a beta version installed, get the latest build with:

$ pear upgrade symfony/symfony-beta

Note: in some Windows platforms, it appears that the PEAR utility uses its own web cache and doesn't actually require the symfony channel to check the latest version. Make sure you empty your PEAR cache before you ask for an upgrade (use pear config-show to get the location of the cache folder).

When upgrading your symfony installation, don't forget to clear the cache of all the applications using it:

$ cd myproject $ symfony clear-cache

If you want to be be more selective in clearing the cache (to keep any existing HTML cache and clear only the configuration of each application), you'd rather use:

$ cd myproject $ symfony clear-cache myapp1 config $ symfony clear-cache myapp2 config

You can check which version of symfony is installed by typing:

$ symfony -V

Installing symfony by hand

If you don't want to use PEAR, you can still download the latest version directly from the SVN repository, by requesting a checkout, and install it by hand:

$ mkdir /home/steve/mysymfony $ cd /home/steve/mysymfony $ svn co http://svn.symfony-project.com/trunk/ .

For your project to make use of this installation, you will have to create two symbolic links in you project from the lib directory to the symfony lib directory:

$ cd /home/steve/myproject $ ln -sf /home/steve/mysymfony/lib lib/symfony $ ln -sf /home/steve/mysymfony/data data/symfony

In addition, you will have to make the shortcuts to allow the call to the command line tools pake and symfony.

Note: You must also install Phing and Pake. Just install them under the lib/symfony directory.

Installing symfony without command line

If you want to host your website in a server that you can't access with a command line (and that might happen if your hosting provider only allows FTP access), you will need to install the two symfony directories manually in your project tree structure.

First, get the .tgz file of the symfony framework package from the symfony project website. Unpack it into a temporary folder. You will see the following file structure:

package.xml symfony/

LICENSE bin/ data/ lib/

The bin directory will not be of any use since you can't call a command.

Let's suppose that you already transferred your symfony-enabled project to a distant server. The distant tree structure will look like:

myproject/

apps/

myapp/

batch/ cache/ config/ data/ doc/ lib/ log/ test/ web/

To learn more about the file structure of symfony projects, read the related chapter.

Now you need to copy some files from the symfony package into your project directory. First, create a symfony subdirectory in the data and lib directories of your distant project. Second, transfer the files as follows: - local - distant copy symfony/data/* to myproject/data/symfony/ copy symfony/lib/* to myproject/lib/symfony/

If you're unsure of what to expect, you can download the sandbox to see how a project embedded with the framework should look like. In addition, the sandox creation script details all the operations needed to built a project able to run on its own.

Hint: some hosting providers won't run scripts in php5 unless their suffix is .php5. If this is the case of your distant server, you will need to rename the index.php file found in myproject/web/ into index.php5. Don't bother to rename the other files : since symfony uses a front controller, only the index.php file will have to be declared as a php5 script (learn more about the front controller feature in the controller chapter)

User-contributed guides

The symfony wiki contains a few articles describing step-by-step installations on various platforms.

The forum has a dedicated section where many installation issues have already been solved, and where you will find a symfony user willing to help you in minutes if you have a new problem.