Commit bab2737f by Alexander Makarov

Merge pull request #6950 from davidsonalencar/master

Update guides pt-BR [ci skip]
parents 9f569609 a183c385
...@@ -48,7 +48,7 @@ Tratamento de Requisições ...@@ -48,7 +48,7 @@ Tratamento de Requisições
------------------------- -------------------------
* [Visão Geral](runtime-overview.md) * [Visão Geral](runtime-overview.md)
* [Bootstrapping](runtime-bootstrapping.md) * [Inicialização (Bootstrapping)](runtime-bootstrapping.md)
* [Roteamento e Criação de URL](runtime-routing.md) * [Roteamento e Criação de URL](runtime-routing.md)
* [Requisições](runtime-requests.md) * [Requisições](runtime-requests.md)
* [Respostas](runtime-responses.md) * [Respostas](runtime-responses.md)
......
Inicialização (Bootstrapping)
=============================
A inicialização refere-se ao processo de preparação do ambiente antes que uma
aplicação comece a resolver e processar um pedido de requisição. A inicialização
é feita em duas etapas:
O [script de entrada](structure-entry-scripts.md) e a
[aplicação](structure-applications.md).
No [script de entrada](structure-entry-scripts.md), a classe de autoloaders de
diferentes bibliotecas são registradas. Inclui o autoloader do Composer através
do seu arquivo `autoload.php` e o autoloader do Yii através do seu arquivo `Yii`.
O script de entrada, em seguida, carrega a [configuração](concept-configurations.md)
da aplicação e cria uma instância da [aplicação](structure-applications.md).
No construtor da aplicação, as seguintes etapas de inicialização serão realizadas:
1. O método [[yii\base\Application::preInit()|preInit()]] é chamado, na qual
algumas propriedades da aplicação de alta prioridade serão configuradas, como
o [[yii\base\Application::basePath|basePath]].
2. Registra o [[yii\base\Application::errorHandler|manipulador de erro]].
3. Inicializa as propriedades da aplicação a partir da configuração da aplicação.
4. O método [[yii\base\Application::init()|init()]] é chamado, que por sua vez
chamará o método [[yii\base\Application::bootstrap()|bootstrap()]] para executar
os componentes de inicialização.
- Inclui o arquivo `vendor/yiisoft/extensions.php` de manifesto da extensão.
- Cria e executa os [componentes de inicialização](structure-extensions.md#bootstrapping-classes)
declaradas pelas extensões.
- Cria e executa os [componentes da aplicação](structure-application-components.md)
e/ou os [módulos](structure-modules.md) declarados na
[propriedade bootstrap](structure-applications.md#bootstrap) da aplicação.
Como as etapas de inicialização tem que ser feitos antes da manipulação de *cada*
requisição, é muito importante que mantenha este processo limpo e otimizado o
máximo possível.
Tente não registrar muitos componentes de inicialização. Um componente de
inicialização é necessário apenas se quiser participar de todo o ciclo de vida
do processo da requisição. Por exemplo, se um módulo precisar registrar uma
análise de regras de URL adicionais, deve ser listados na
[propriedade bootstrap](structure-applications.md#bootstrap) de modo que as novas
regras de URL possam ter efeito antes que sejam usados para resolver as requisições.
No modo de produção, habilite um cache de bytecode, como o [PHP OPcache] ou [APC],
para minimizar o tempo necessário para a inclusão e análise os arquivos PHP.
[PHP OPcache]: http://php.net/manual/en/intro.opcache.php
[APC]: http://php.net/manual/en/book.apc.php
Algumas aplicações de larga escala possuem [configurações](concept-configurations.md)
complexas, que são divididos em vários arquivos menores. Se este for o caso,
considere guardar o cache de todo o array da configuração e carregue-o
diretamente a partir deste cache antes da criação da instância da aplicação no
script de entrada.
Visão Geral
===========
Cada vez que uma aplicação Yii processa uma requisição, ele passa por um fluxo
de trabalho parecido como o seguinte:
1. Um usuário faz uma pedido para o [script de entrada](structure-entry-scripts.md)
`web/index.php`.
2. O script de entrada carrega a [configuração](concept-configurations.md) da
aplicação e cria uma instância da [aplicação](structure-applications.md) para
processar o pedido.
3. A aplicação resolve a [rota](runtime-routing.md) solicitada com a ajuda do
componente [request](runtime-requests.md) da aplicação.
4. A aplicação cria uma instância do [controller (controlador)](structure-controllers.md)
para processar o pedido.
5. O controller (controlador) cria uma instância da [ação](structure-controllers.md)
e executar os filtros para a ação.
6. Se qualquer filtro falhar, a ação será cancelada.
7. Se todos os filtros passarem, a ação será executada.
8. A ação carrega os dados do model (modelo), possivelmente a partir de um banco
de dados.
9. A ação renderiza uma view (visão), com os dados fornecidos pelo model (modelo).
10. O resultado da renderização é devolvida para o componente [response](runtime-responses.md)
da aplicação.
11. O componente response envia o resultado da renderização para o navegador do
usuário.
O diagrama a seguir mostra como uma aplicação processa um pedido.
![Request Lifecycle](images/request-lifecycle.png)
Nesta seção, descreveremos com mais detalhes como alguns destes passos trabalham.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment