The symfony Cookbook

Como personalizar a estrutura de diretórios padrão

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 Brazilian Portuguese 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.

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.

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.