Egy keretrendszer használatának egyik nagy előnye, hogy konzisztens struktúrát biztosít a projektjeinkben. Minden projekt azonos kódolási alapokon és könyvtárstruktúrán osztozik. Ez a struktúra lehetőséget biztosít több fejlesztőnek, hogy egyszerre közösen dolgozzanak ugyanazon a projekten. Emellett növeli az alkalmazás karbantarthatóságát is. Ha valaki megkért, hogy a továbbiakban foglalkozzunk a symfony-s projektjével, amit más kezdett fejleszteni, azonnal tudjuk mi hol található és elkezdhetjük az alkalmazás továbbfejlesztését.
Persze időnként szükség van a könyvtárstruktúra testreszabására is. Nézzünk két példát erre.
Először nézzünk meg egy shared hostos környezetet, ahol a web root könyvtár a public_html. A ProjectConfiguration osztály szerkesztésével egyszerűen megváltoztatható az alapértelmezett web root könyvtár web-ről public_html-re:
// config/ProjectConfiguration.class.php class ProjectConfiguration extends sfProjectConfiguration { public function setup() { $this->setWebDir($this->getRootDir().'/../public_html'); } }
Vegyünk egy másik példát. Symfony projektünket egy nagy cég, szigorú biztonsági szabályok mellett hostolja. Az alkalmazások csak egy előre kijelölt helyre írhatnak a lemezen (ez legyen a /tmp). Miután a symfony csak két könyvtárba ír (cache és log), ezért egyszerű elvégezni a szükséges módosításokat a ProjectConfiguration osztályon, hogy a megfelelő könyvtárak a /tmp alá kerüljenek:
// config/ProjectConfiguration.class.php class ProjectConfiguration extends sfProjectConfiguration { public function setup() { $this->setCacheDir('/tmp/myproject/cache'); $this->setLogDir('/tmp/myproject/log'); } }
A setCacheDir() metódus nem csak az sf_cache_dir konstans értékét változtatja meg, hanem az összes hozzá kapcsolódót is, úgymint: 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, és sf_module_cache_dir
Végül, de nem utolsó sorban, a konfigurációs osztályok a symfony CLI alatt is használatban vannak, minden elvégzett módosítás érvényre jut az összes taskban is, akár a symfony-val érkezett, akár saját magunk írtuk azt.
A symfony 1.1 új konfigurációs osztályainak hála a keretrendszer beállítás még sosem volt ennyire egyszerű.
This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License license.