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 e a aplicação.
No script de entrada, 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
da aplicação e cria uma instância da aplicação.
No construtor da aplicação, as seguintes etapas de inicialização serão realizadas:
- O método preInit() é chamado, na qual algumas propriedades da aplicação de alta prioridade serão configuradas, como o yii\base\Application::basePath.
- Registra o yii\base\Application::errorHandler.
- Inicializa as propriedades da aplicação a partir da configuração da aplicação.
- O método init() é chamado, que por sua vez
chamará o método 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 declaradas pelas extensões.
- Cria e executa os componentes da aplicação e/ou os módulos declarados na propriedade bootstrap da aplicação.
- Inclui o arquivo
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 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.
Algumas aplicações de larga escala possuem configurações 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.