web-dev-qa-db-pt.com

O que é o fluxo de execução do Joomla, após uma solicitação chegar ao index.php até a saída final no navegador?

Baseado nesta questão: Como os modelos funcionam e carregam arquivos css/js? Processo de criação de sites com o Purity III

Citação:
.... Tenho que apresentar meu site amanhã e talvez me perguntem "de onde vem o conteúdo?" e eu não posso responder porque eu não entendo.

O que acontece se eu ligar para o site? No arquivo index.php está o código php, mas não consigo encontrar o local em que o resto do site é "chamado" ou algo assim ....

e também em tipos de perguntas como esta: Onde os arquivos do Joomla estão localizados

Decidi criar este Q/A para funcionar como referência para todas as perguntas semelhantes. Qualquer pessoa que queira contribuir para tornar este post sólido na comunidade é bem-vinda.

8
FFrewin

ToC do respondente
1. Introdução para iniciantes + link para recursos para iniciantes
2. Sobre a arquitetura Joomla
3. Fluxo de execução do Joomla - Como o Joomla funciona
4. Recursos Suplementares

1. Introdução para iniciantes

Usar o Joomla para construção de sites é bastante simples, pois fornece uma área de administração amigável. Na maioria dos casos, isso é tudo o que é necessário saber para usuários finais e designers.

Muitos iniciantes com algum conhecimento sobre html e css estáticos clássicos têm a mesma pergunta/expectativa: Como editar seus arquivos/conteúdo, como eles vêem sendo renderizados em seu navegador.

Entretanto a maneira como o Joomla trabalha nos bastidores, é muito mais complicado do que editar um arquivo html e requer conhecimento e experiência avançados em programação para entendê-lo completamente.

Portanto, como resposta curta: não espere abrir o aplicativo de gerenciamento de FTP/Arquivo e encontre um arquivo chamado: myArticle.html Ou index.html Que permita você o edita diretamente ou altera a aparência dos elementos html da sua página.

Para começar, eu sugeriria aprender primeiro o básico do Joomla e como gerenciá-lo a partir do back-end. Lentamente, lentamente, será adquirido mais conhecimento e experiência.

Recursos para iniciantes

Um tópico com recursos e tutoriais úteis pode ser encontrado aqui:
Tutoriais para iniciantes no Joomla - Como começar com o Joomla?


2. Sobre a arquitetura Joomla

Joomla é mais do que um CMS moderno construído em PHP. É um projeto web avançado que incorpora arquitetura de várias camadas, que inclui:

  • O framework Joomla - incluindo bibliotecas de terceiros nas quais o framework se baseia, e os plugins que estendem o framework.
  • Aplicativos Web separados como o site do administrador, o site front-end, a instalação.
  • A camada de extensões (módulos, componentes, modelos) que estendem a estrutura do Joomla e os aplicativos.

O Joomla implementa vários conceitos avançados de programação, Programação Orientada a Objetos, MVC design pattern e outros padrões comuns de design, um template system etc. Também para não esquecer de mencionar que o Joomla faz uso de um banco de dados onde os dados são salvos e recuperados quando solicitados para serem exibidos na tela.


3. Descrição Simples e Breve do Ciclo de Execução do Joomla - Como o Joomla Funciona

Quando você acessa o index.php do site Joomla (o aplicativo JSite de front-end), um novo todo - ciclo de execução é iniciado, isso inclui:

  • Importante inclui arquivos que definem as constantes [~ # ~] do aplicativo [~ # ~] usadas amplamente no aplicativo e em suas extensões.
  • Carregando o framework Joomla e todos os seus essenciais Classes necessários para a aplicação funcionar no futuro, - o framework também verifica se existe um configuration file no lugar, ou deve nos levar para a pasta de instalação para fazer uma nova instalação do Joomla.
  • O objeto Aplicativo objeto é criado e inicializado e o estado da sessão é tratado (sessão nova ou existente).
  • O arquivo configuration é carregado - que também dá acesso ao banco de dados.
  • O roteador é chamado. O roteador é responsável por converter URLs para uma matriz associativa de comandos e vice-versa. Esses comandos serão usados ​​como parâmetros de url e enviados para PHP $_GET SuperGlobal para criar um URL completo. O elemento option dessa matriz é o que define o componente que deve ser executado.
  • Com a execução do componente, o Objeto do Documento é criado. O documento é armazenado na memória e contém dados que serão retornados posteriormente no navegador. O fato de ser armazenado como buffer na memória permite colocar e manipular conteúdo nele em nenhuma ordem específica e em qualquer local. O modelo selecionado foi armazenado na configuração. Além disso, vale ressaltar que a única coisa que o Joomla está fazendo é executar o componente. O que mais deve acontecer durante esta etapa é o trabalho do componente.
  • A seguir, vem o Renderização da página, onde, juntamente com os dados do componente da etapa anterior, os módulos e as mensagens de notificação também são renderizados e colocados em suas posições de modelo.
  • A etapa final é enviar a página para o navegador.
  • Importante notar que durante os vários estágios do ciclo de execução acima, existem Eventos de Plugin pontos chamados, que permitem que o vários eventos para interferir e estender a funcionalidade do Joomla.

Uma lista de fluxo de execução mais detalhada, com os eventos do plug-in, está documentada aqui: Fluxo de execução do aplicativo Joomla


4. Recursos Complementares:

13
FFrewin

Pequena contribuição, a lista completa de Eventos do Joomla! Plugin.

1
Gruber