web-dev-qa-db-fra.com

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

Basé sur cette question: Comment fonctionnent les modèles et charger les fichiers css/js? Le processus de création de site Web avec Purity III

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

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

et aussi sur le type de questions comme ceci: Où sont situés les fichiers Joomla

J'ai décidé de créer ce Q/A pour servir de référence pour toutes les questions similaires. Toute personne souhaitant contribuer à faire de cette publication un wiki de communauté solide est la bienvenue.

8
FFrewin

ToC de la réponse
1. Intro pour débutants + ressources débutants link
2. A propos de Joomla Architecture
3. Joomla Execution Flow - Fonctionnement de Joomla
4. Ressources supplémentaires

1. Introduction pour les débutants

Utiliser Joomla pour la construction de sites est plutôt simple, car il 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: comment éditer leurs fichiers/contenu, car ils le voient être restitué sur leur navigateur.

Cependant la façon dont Joomla fonctionne en coulisse est beaucoup plus compliquée que l'édition d'un fichier html et nécessite des connaissances avancées en programmation et de l'expérience pour la comprendre.

Donc, pour répondre brièvement: ne vous attendez pas à ouvrir l’application FTP/File Manager et à rechercher un fichier nommé: myArticle.html, ou index.html qui vous permettra de le modifier directement ou de modifier l’apparence des éléments HTML de votre page.

Pour commencer, je suggérerais d’apprendre d’abord les bases de Joomla et comment le gérer à partir du backend. Lentement, lentement, plus de connaissances et d'expérience seront acquises.

Ressources pour débutants

Un sujet avec des ressources utiles et des tutoriels peut être trouvé ici:
Tutoriels Joomla pour débutants - Comment commencer avec Joomla?


2. À propos de l'architecture de Joomla

Joomla est plus qu'un CMS moderne construit sur PHP. Il s'agit d'un projet Web avancé intégrant une architecture multi-couches et comprenant:

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

Joomla implémente divers concepts de programmation avancés, Programmation orientée objet , Modèle de conception MVC et d'autres modèles de conception courants, un système de gabarit , etc., ainsi que pour ne pas oublier de mentionner que Joomla utilise un base de données où les données sont enregistrées et récupérées lorsqu’il est demandé de les afficher à l’écran.


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

Lorsque vous atteignez au index.php _ d’un site Joomla (l’application JSite front-end), un tout nouveau cycle d’exécution commence, qui comprend:

  • Les fichiers importants qui définissent les constantes [~ # ~] [~ # ~] de l'application qui sont largement utilisées dans l'application et ses extensions.
  • Chargement du framework Joomla et de toutes ses classes essentielles requises pour le Pour que l’application fonctionne plus tard, le framework vérifie également s’il existe un fichier de configuration , ou il devrait nous amener au dossier d’installation pour le créer. une nouvelle installation de 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é - il 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 et vice versa. Ces commandes seront utilisées comme paramètres d’URL et envoyées à $_GET SuperGlobal pour constituer une URL complète. L'élément option de ce tableau est celui qui définit le composant à exécuter.
  • Avec l'exécution du composant, le objet Document est créé. Le document est stocké en mémoire et contient les données qui seront renvoyées plus tard sur le navigateur. Le fait qu'il soit stocké en mémoire tampon permet de mettre 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 encore se passer pendant cette étape est le travail du composant.
  • Vient ensuite le rendu de la page , où, aux côtés des données de composant de l'étape précédente, les modules et les messages de notification sont également restitués et placés dans leurs positions de modèle.
  • La dernière étape consiste à exporter la page vers le navigateur .
  • Il est important de noter qu'au cours des différentes étapes du cycle d'exécution ci-dessus, il y a Plugin Events = points appelés, qui permettent aux différents événements d'interférer et d'étendre les fonctionnalités de Joomla.

Une liste plus détaillée des flux d'exécution, avec les événements du plug-in, est documentée ici: flux d'exécution de l'application Joomla


4. Ressources supplémentaires:

13
FFrewin

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

1
Gruber