Como os templates são executados?
From Joomla! Documentation
Os templates (modelos) são executados em um processo de 2 fases fazendo uso completo do parser PHP, para proporcionar um grau considerável de flexibilidade e performance para o designer de templates. Os templates são executados no contexto do objeto document, portanto o $this é sempre uma instância da classe JDocument.
Antes de iniciar a execução do templeate, o componente será executado e sua saída será armazenada em buffer para uso posterior.
A execução do template (modelo) acontece da seguinte maneira:
- Os parâmetros do template (se houverem) são carregados.
- A linguagem do template (se houver) é carregada.
- Se o modo legacy (herdado) estiver ativo, as variáveis de configuração serão copiadas como globais.
- O arquivo de template (index.php) é carregado e executado (pelo PHP). A saída é armazenada em buffer. Esta é a fase 1 do processo de 2 fases. Tudo entre tags <?php e ?> é executado como código PHP. Tudo fora dessas tags é exibido, caso contrário será ignorado. Como a saída está sendo armazenada em buffer, nada é enviado para o navegador web cliente nesta fase.
- Um arquivo favicon.ico é buscado, primeiro no diretório raiz do Joomla! e, em seguida, no diretório raiz do modelo. Este último substituirá o primeiro se existir.
- A saída que foi armazenada em buffer na fase 1 agora é enviada para o elemento <jdoc: include>. Esta é a fase 2 do processo. Para cada elemento jdoc encontrado, a classe de renderização adequada é carregada e seu método render é chamado. A saída do método render substitui o elemento <jdoc: include> no buffer de saída. No caso do módulo renderizar classes isso dispara a execução dos módulos e o buffer de sua saída.
- Certos cabeçalhos HTTP específicos do template são adicionados à lista de cabeçalhos a serem exibidos.
- O controle é então passado de volta para o objeto JApplication que irá lidar com o resto do processo de pegar a página web agora renderizada e devolvê-la o navegador web do cliente.
*Category:*Templates/é
*Category:*Template *Development/é
*Category:*Explanations/é