Getting Started with symfony

Os ambientes

About

You are currently reading "Getting Started with symfony" which is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.

Tutorial Content

Symfony 2.0 Preview Release
symfony training
Be trained by symfony experts
Apr 12: Paris (What's new in 1.3/1.4 - Français)
Apr 21: Paris (1.4 + Doctrine - Français)
Apr 28: Online (What's new in 1.3/1.4 - Français)
and more...

Search


powered by google
You are currently browsing "Getting Started with symfony" in Brazilian Portuguese for the 1.2 version - Switch to language:
Creative Commons License This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.
This version of symfony is not maintained anymore.
If some of your projects still use this version, consider upgrading as soon as possible.

Se você olhar o diretório web/, você encontrará dois arquivos PHP: index.php e frontend_dev.php. Esses arquivos são chamados de front controllers; todas as chamadas para a aplicação são feitas através deles. Mas, por que nós temos dois "front controllers" diferentes para cada aplicação?

Ambos os arquivos apontam para a mesmo aplicação, mas para diferentes ambientes. Quando vocÊ desenvolve uma aplicação, ao não ser que você desenvolva direto no servidor de produção, você precisa de alguns ambientes:

O que torna um ambiente único? No ambiente de desenvolvimento, por exemplo, a aplicação deve logar todos os detalhes de uma chamada visando facilitar o debug. O cache precisa estar desabilitado por completo para todas as alterações surtirem efeito em tempo real. Entao, um ambiente de desenvolvimento precisa ser otimizado para o desenvolvedor. O melhor exemplo é quando ocorre algum erro. Para ajudar o desenvolvedor a corrigir os erros mais rápido, o symfony mostra a "exception" com todas as informações detalhadas da chamada no browser:

An exception in the dev environment

Mas, no ambiente de produção, o cache deve estar ativado e , é claro, a aplicação deve mostrar erros personalizados ao invés de "exceptions". Entao, o ambiente de produção deve ser otimizado para performance e ao usuário final.

An exception in the prod environment

DICA Se você abrir um arquivo "front controller", você poderá ver que a única diferença entre eles é a configuração que determina o ambiente:

// web/index.php
<?php
 
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
 
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false);
sfContext::createInstance($configuration)->dispatch();

A barra de debug é um bom exemplo da utilização de ambientes. Ela está presente em todas as páginas do ambiente de desenvolvimento e fornece acesso para todas as informações do framework. Há diversas abas que permitem esta navegação: configuração da aplicação, logs, SQL executados no banco de dados, alocação de memória e informações de tempo.

Próximo passo? »
« Configuração do Web Server

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.

The Sensio Labs Network

Since 1998, Sensio Labs has been promoting the Open-Source software movement by providing quality web application development, training, consulting.
Sensio Labs also supports several large Open-Source projects.