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.
This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License license.