Umas das grandes vantagens de usar um framework é a estrutura consistente que ele proporciona ao longo dos projetos. Todos os projetos compartilham os mesmos padrões de código e também a mesma estrutura de diretórios. Essa estrutura permite que vários desenvolvedores trabalhem no mesmo projeto ao mesmo tempo. Mas isso também aumenta a facilidade de manter as aplicações desenvolvidas. Quando alguém pede que você de manutenção em um projeto que inicialmente você não participou, você conhece aonde todos os arquivos estão armazenados e você já pode sair programando na mesma hora.
Mas as vezes você precisa personalizar a estrutura de diretórios dada pelo symfony. Vamos pegar dois exemplos bem diferentes.
Primeiro, vamos dizer que você hospeda seu projeto symfony em um ambiente compartilhado(shared host), onde o diretório raiz web é chamado public_html
. Editando a classe ProjectConfiguration
, é bem fácil de mudar o diretório web padrão de web
para public_html
como mostrado abaixo:
// config/ProjectConfiguration.class.php class ProjectConfiguration extends sfProjectConfiguration { public function setup() { $this->setWebDir($this->getRootDir().'/../public_html'); } }
Vamos ver um outro exemplo. Seu projeto symfony agora é hospedado em uma grande companhia com regras de segurança rigídas. Eles não deixam sua aplicação escrever no disco, exceto em alguns diretórios específicos.(/tmp
por exemplo). Como o symfony só escreve em dois diretórios (cache
, e log
), é simples atualizar novamente a classe ProjectConfiguration
e mover esses diretórios para dentro de /tmp
:
// config/ProjectConfiguration.class.php class ProjectConfiguration extends sfProjectConfiguration { public function setup() { $this->setCacheDir('/tmp/myproject/cache'); $this->setLogDir('/tmp/myproject/log'); } }
O método setCacheDir()
não muda somente a constante sf_cache_dir
mas todas as relacionadas ao 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
e sf_module_cache_dir
.
E a última mas não menos importante: Como as classes de configuração também são usadas na symfony CLI, todos esses ajustes também ficam ativos para todas as tarefas instaladas com o symfony e as suas específicas.
Graças as novas classes de configuração do symfony 1.1, a configuração do framework nunca foi tão fácil.
This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License license.