Qu'est-ce que le flux d'exécution Joomla, après une requête, accédez à index.php jusqu'à la sortie finale sur le navigateur?

8

Basé sur cette question: comment fonctionnent les modèles et chargent les fichiers css / js? Processus de création de site Web avec Purity III

Quote:
.... Je dois présenter mon site Web demain et on me demandera "d'où vient le contenu?" et je ne peux pas répondre parce que je ne comprends pas moi-même.

Que se passe-t-il si j'appelle le site? Dans le fichier index.php se trouve du code php mais je ne trouve pas l'endroit où le reste du site Web est "appelé" ou quelque chose ...

et aussi sur le type de questions comme celle-ci: Où se trouvent les fichiers Joomla

J'ai décidé de créer ce Q / A pour travailler comme référence pour toutes les questions similaires. Quiconque souhaite contribuer à faire de cet article un wiki communautaire solide est le bienvenu.

FFrewin
la source

Réponses:

13

ToC de la réponse
1. Intro pour les débutants + lien
vers les ressources pour les débutants 2. À propos de l'architecture
Joomla 3. Flux d'exécution Joomla - Fonctionnement de Joomla
4. Ressources supplémentaires

1. Intro pour les débutants

L'utilisation de Joomla pour la création de sites est assez simple, car elle fournit une zone d'administration conviviale. Dans la plupart des cas, c'est tout ce qu'il faut savoir pour les utilisateurs finaux et les concepteurs.

Beaucoup de débutants ayant des connaissances en html et css statiques classiques, ont la même question / attente commune: comment modifier leurs fichiers / contenu, car ils voient qu'il est rendu sur leur navigateur.

Cependant, la façon dont Joomla fonctionne en arrière-plan est beaucoup plus compliquée que la modification d'un fichier html et nécessite des connaissances et une expérience avancées en programmation pour bien le comprendre.

Donc, pour répondre brièvement: ne vous attendez pas à ouvrir l'application FTP / Gestionnaire de fichiers et à trouver un fichier appelé:, myArticle.htmlou index.htmlqui vous permettra de le modifier directement ou de changer l'apparence des éléments html de votre page.

Pour commencer, je suggère d'apprendre d'abord les bases de Joomla et comment le gérer depuis le backend. Lentement, lentement, plus de connaissances et d'expérience seront acquises.

Ressources pour débutants

Vous trouverez ici une rubrique contenant des ressources et des didacticiels utiles:
Tutoriels pour débutants Joomla - Comment démarrer avec Joomla?


2. À propos de Joomla Architecture

Joomla est plus qu'un CMS moderne basé sur PHP. Il s'agit d'un projet Web avancé intégrant une architecture multi-couches, qui comprend:

  • Le framework Joomla - y compris les bibliothèques tierces sur lesquelles le framework s'appuie et les plugins qui étendent le framework.
  • Des applications Web distinctes comme le site administrateur, le site frontal, l'installation.
  • La couche d'extensions (modules, composants, modèles) qui étendent le framework Joomla et les applications.

Joomla outils divers concepts de programmation avancés, la programmation orientée objet , modèle de conception MVC et d' autres modèles de conception commune, un système de modèles , etc. En outre de ne pas oublier de mentionner que Joomla utilise une base de données où les données sont enregistrées et récupérées sur demande à afficher sur écran.


3. Description simple et brève du cycle d'exécution de Joomla - Fonctionnement de Joomla

Lorsque vous accédez au index.phpsite Joomla (l'application frontale JSite), un tout nouveau cycle d'exécution démarre, qui comprend:

  • Des inclusions importantes de fichiers qui définissent les CONSTANTES de l'application qui sont largement utilisées dans l'application et ses extensions.
  • Charger le framework Joomla et toutes ses classes essentielles qui sont nécessaires pour que l'application fonctionne sur la route, -le framework vérifie également s'il y a un fichier de configuration en place, ou il devrait nous emmener dans le dossier d'installation pour faire une nouvelle installation Joomla .
  • L' objet Application est créé et initialisé et l'état de la session est géré (session nouvelle ou existante).
  • Le fichier de configuration est chargé - qui donne également accès à la base de données.
  • Le routeur est appelé. Le routeur est responsable de la traduction des URL en un tableau associatif de commandes et vice versa. Ces commandes seront utilisées comme paramètres d'URL et envoyées au SuperGlobal de PHP$_GET pour créer une URL complète. L' optionélément de ce tableau est celui qui définit le composant à exécuter.
  • Avec l'exécution du composant, l' objet document est créé. Le document est stocké en mémoire et contient des données qui seront retournées ultérieurement sur le navigateur. Le fait qu'il soit stocké en tant que tampon en mémoire permet d'y placer et de manipuler du contenu sans ordre particulier et à partir de n'importe quel emplacement. Le modèle sélectionné a été enregistré dans la configuration. En outre, il convient de noter que la seule chose que Joomla fait est d'exécuter le composant. Ce qui devrait se passer d'autre pendant cette étape, c'est le travail du composant.
  • Vient ensuite le rendu de la page , où, à côté des données des composants de l'étape précédente, les modules et les messages de notification sont également rendus et placés dans leurs positions de modèle.
  • La dernière étape consiste à sortir la page dans le navigateur .
  • Il est important de noter qu'au cours des différentes étapes du cycle d'exécution ci-dessus, des points d' événements de plug - in sont appelés, ce qui permet aux divers événements d'interférer et d'étendre la fonctionnalité Joomla.

Une liste de flux d'exécution plus détaillée, avec les événements du plugin, est documentée ici: Joomla Application Execution Flow


4. Ressources supplémentaires:

FFrewin
la source
1

Petite contribution, la liste complète de Joomla! Événements de plugin .

Gruber
la source
petit mais utile
FFrewin
vous pourriez peut-être écrire les parties les plus essentielles de cette page ici
FFrewin
@FFrewin Je le ferais mais en gros c'est une longue liste de liens de chaque événements de Plugin! J'essaie de trouver une sorte de "chronologie" de tous les événements de cette liste, mais je ne trouve pas grand-chose à ce sujet, j'ai trébuché dans votre réponse ici après beaucoup de recherches sur Google et le flux d'exécution d'application Joomla en mentionne certains des événements du groupe système, mais pas beaucoup sur tous les autres.
Gruber
@FFrewin serait également utile une sorte de description générale de tous les différents groupes d'événements de plugins, mais je n'ai pas trouvé grand-chose dans les documents Joomla (mais j'admets que mon GoogleFu manque un peu ces jours-ci ne sais pas pourquoi, c'est peut-être la chaleur: P)
Gruber