The symfony Cookbook

Wie man die voreingestellte Verzeichnisstruktur individuell anpasst

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
May 29: Paris (Web Development with Symfony2 - Français)
May 31: Paris (Mastering Symfony2 - Français)
Jun 06: Paris (Introduction to Symfony2 - Français)
Jun 06: Paris (Introduction to Symfony2 - English)
Jun 06: Paris (Going Further with Symfony2 - English)
and more...

Search


powered by google
You are currently browsing "The symfony Cookbook" in German for the 1.2 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.

Eins der großen Vorteile des Frameworks ist, die gleich bleibende Struktur die über Ihren Projekten gegeben ist. Alle Projekte verwenden den gleichen Coding-Standard sowie die gleiche Verzeichnisstruktur. Diese Struktur ermöglicht es das mehrere Entwickler an dem selben Projekt gleichzeitig arbeiten können. Aber es erhöht auch die Wartbarkeit der entwickelten Anwendungen. Wenn Sie jemand fragen würde, ein symfony Projekt, woran Sie bis dato nicht entwickelt haben, zu betreuen, wissen Sie, wo alle Dateien abgelegt sind und Sie können sofort mit der Enticklung beginnen.

Jedoch müssen Sie manchmal in der Lage sein, die Verzeichnisstruktur, die von symfony bereitgestellt wird, individuell anpassen. Lassen Sie uns das an anhand zwei sehr unterschiedlichen Beispielen aufzeigen.

Sagen wir mal Ihr symfony-Project iwr auf eine Shared-Host gehostet, wo die das web-root-Verzeichnis public_html lautet. Durch das bearbeiten der ProjectConfiguration-Klasse, ist es sehr einfach, wie weiter unten gezeigt wird, das voreingestellte web-root-Verzeichnis von web auf public_html anzupassen:

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

Lassen Sie uns ein anderes Beispiel nehmen. Ihr symfony-Projekt wird nun bei einem sehr großen Unternehmen, mit strikten Struktur-Richtlinien, gehostet. Sie erlauben Ihrer Anweundung nicht, bis auf einigen spezifizierten Verzeichnissen (/tmp zum Beispiel), auf der Festplatte zu schreiben. Da symfony, nur in zwei Verzeichnissen schreibt (cache und log), ist es sehr einfach die ProjectConfiguration-Klasse anzupassen, um diese Verzeichnisse auf /tmp zu verschieben:

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

Die Methode setCacheDir() ändert nicht nur die Konstante sf_cache_dir, sondern alle Cache-bezogene Konstanten: 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 und sf_module_cache_dir.

Und zu guter Letzt, da die Konfigurationsklassen ebenfalls von symfony CLI verwendet werden, sind alle diese angepassten Einstellungen auch für die gesamten symfony Tasks und Ihren spezifizierten Tasks aktiviert.

Dank den neuen Konfigurationsklassen von symfony 1.1, ist die Konfigurierbarkeit des Frameworks noch nie so einfach gewesen.

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.