The symfony Cookbook

Comment personnaliser la Structure des Répertoires par défaut

You are currently browsing
the website for symfony 1

Visit the Symfony2 website


About

You are currently reading "The symfony Cookbook" which is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License license.

Master symfony

Be trained by SensioLabs experts (2 to 6 day sessions -- French or English).
trainings.sensiolabs.com

Books on symfony

Learn more about symfony with the official guides.
books.sensiolabs.com

L'audit Qualité par SensioLabs

200 points de contrôle de votre applicatif web.
audit.sensiolabs.com
symfony training
Be trained by symfony experts
Feb 21: Köln (Getting Started with Symfony2 - English)
Feb 27: Köln (Mastering Symfony2 - English)
Mar 05: Köln (Web Development with Symfony2 - Deutsch)
Mar 05: Montreal (Web Development with Symfony2 - English)
Mar 05: Montreal (Getting Started with Symfony2 - English)
and more...

Search


powered by google
You are currently browsing "The symfony Cookbook" in French for the 1.1 version - Switch to version: - Switch to language:
Creative Commons License This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Translation of this work into another language is explicitly allowed.
This version of symfony is not maintained anymore.
If some of your projects still use this version, consider upgrading as soon as possible.

Traduit par Nicolas Garnault

Un des grands bénéfices tirés de l'utilisation d'un framework est le modèle d'arborescence commun utilisé dans tous vos projets. Tous les projets partagent les mêmes conventions de code, et également la même structure d'arborescence. Cette structure autorise plusieurs développeurs à travailler sur le même projet en même temps, et améliore également la maintenabilité des applications développées. Quand quelqu'un vous demande de maintenir un projet symfony que vous n'avez pas développé initialement, vous savez où sont stockés les fichiers et pouvez donc immédiatement commencer à coder.

Cependant quelquefois, vous avez besoin de pouvoir personnaliser la structure d'arborescence fournie par symfony. Prenons deux exemples très différents.

Premièrement, disons que vous vous hébergez votre projet symfony dans un environnement d'hébergement mutualisé, où le dossier servant comme racine web s'appelle public_html. En édiant la classe ProjectConfiguration, il est très simple de changer le nom de la racine web par défaut de web à public_html, comme montré ci-dessous :

// config/ProjectConfiguration.class.php
class ProjectConfiguration extends sfProjectConfiguration
{
  public function setup()
  {
    $this->setWebDir($this->getRootDir().'/../public_html');
  }
}

Prenons un autre exemple. Votre projet symfony est maintenant hébergé dans une très grande compagnie, imposant des règles de sécurité strictes. Ces derniers n'autorisent vos applications à écrire sur le disque que dans des dossiers spéficiques (/tmp par exemple). symfony n'écrivant que dans deux dossiers (cache et log), il est très simple de mettre à nouveau à jour la classe ProjectConfiguration et de déplacer ces répertoires vers /tmp :

// config/ProjectConfiguration.class.php
class ProjectConfiguration extends sfProjectConfiguration
{
  public function setup()
  {
    $this->setCacheDir('/tmp/myproject/cache');
    $this->setLogDir('/tmp/myproject/log');
  }
}

La méthode setCacheDir() ne change pas uniquement la constante sf_cache_dir, mais également toutes les constantes associées au cache : sf_app_base_cache_dir, sf_app_cache_dir, sf_template_cache_dir, sf_i18n_cache_dir, sf_config_cache_dir, sf_test_cache_dir, et sf_module_cache_dir.

Enfin, les classes de configuration étant également utilisées par le CLI (interpréteur de ligne de commande) de symfony, toutes les modifications effectuées seront également effectives pour toutes les tâches symfony, ainsi que pour vos tâches personnalisées.

Grâce aux nouvelles classes de configuration de symfony 1.1, la configurabilité du framework n'a jamais été aussi simple.

Questions & Feedback

If you find a typo or an error, please register and open a ticket.

If you need support or have a technical question, please post to the official user mailing-list.