Como os templates são executados?

From Joomla! Documentation

This page is a translated version of the page How are templates executed? and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎Nederlands • ‎español • ‎français • ‎português • ‎português do Brasil • ‎русский • ‎українська • ‎中文(台灣)‎

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/é