Was ist der Joomla-Ausführungsablauf, nachdem eine Anfrage bis zur endgültigen Ausgabe im Browser zu index.php gelangt ist?

8

Basierend auf dieser Frage: Wie funktionieren Vorlagen und laden CSS / JS-Dateien? Website-Erstellungsprozess mit Purity III

Quote:
.... Ich muss morgen meine Website präsentieren und werde möglicherweise gefragt "Woher kommt der Inhalt?" und ich kann nicht antworten, weil ich es selbst nicht verstehe.

Was passiert, wenn ich die Site anrufe? In der index.php-Datei befindet sich PHP-Code, aber ich kann die Stelle nicht finden, an der der Rest der Website "aufgerufen" wird oder so ....

und auch zu Fragen wie diesen: Wo sich Joomla-Dateien befinden

Ich habe beschlossen, diese Frage / Antwort zu erstellen, um als Referenz für alle ähnlichen Fragen zu dienen. Jeder, der dazu beitragen möchte, dass dies ein solider Community-Wiki-Beitrag wird, ist willkommen.

FFrewin
quelle

Antworten:

13

Antwort-Inhaltsverzeichnis
1. Einführung für Anfänger + Link zu Ressourcen für Anfänger
2. Informationen zur Joomla-Architektur
3. Joomla-Ausführungsablauf - Funktionsweise von Joomla
4. Zusätzliche Ressourcen

1. Einführung für Anfänger

Die Verwendung von Joomla für die Site-Erstellung ist recht einfach, da es einen freundlichen Verwaltungsbereich bietet. In den meisten Fällen ist dies alles, was Endbenutzer und Designer wissen müssen.

Viele Anfänger mit einigen Kenntnissen über klassisches statisches HTML und CSS haben dieselbe häufig gestellte Frage / Erwartung: Wie man ihre Dateien / Inhalte bearbeitet, wie sie sehen, dass sie in ihrem Browser gerendert werden.

Die Art und Weise, wie Joomla hinter den Kulissen arbeitet, ist jedoch viel komplizierter als das Bearbeiten einer HTML-Datei und erfordert fortgeschrittene Programmierkenntnisse und -erfahrung, um sie vollständig zu verstehen.

So wie eine kurze Antwort: nicht erwarten , die öffnen FTP / Datei - Manager App und eine Datei finden genannt: myArticle.html, oder index.htmldas wird können Sie es direkt bearbeiten oder das Aussehen der HTML - Elemente Ihrer Seite ändern.

Zu Beginn würde ich vorschlagen, zuerst die Grundlagen von Joomla zu lernen und wie man es vom Backend aus verwaltet. Langsam, langsam werden mehr Wissen und Erfahrung gewonnen.

Ressourcen für Anfänger

Ein Thema mit hilfreichen Ressourcen und Tutorials finden Sie hier: Joomla-Anfänger-Tutorials - Wie fange ich
mit Joomla an?


2. Über Joomla Architecture

Joomla ist mehr als ein modernes CMS, das auf PHP basiert . Es handelt sich um ein fortschrittliches Webprojekt mit mehrschichtiger Architektur, das Folgendes umfasst:

  • Das Joomla-Framework - einschließlich Bibliotheken von Drittanbietern, auf die sich das Framework stützt, und die Plugins, die das Framework erweitern.
  • Separate Webanwendungen wie die Administrator-Site, die Front-End-Site und die Installation.
  • Die Erweiterungsschicht (Module, Komponenten, Vorlagen), die das Joomla-Framework und die Anwendungen erweitert.

Joomla implementiert verschiedene erweiterte Programmierkonzepte, objektorientierte Programmierung , MVC-Entwurfsmuster und andere gängige Entwurfsmuster, ein Vorlagensystem usw. Nicht zu vergessen, dass Joomla eine Datenbank verwendet, in der Daten gespeichert und abgerufen werden, wenn sie zur Anzeige aufgefordert werden Bildschirm.


3. Einfache und kurze Beschreibung des Ausführungszyklus von Joomla - Funktionsweise von Joomla

Wenn Sie index.phpeine Joomla-Site (die Front-End-JSite-Anwendung) erreichen, beginnt ein ganz neuer Ausführungszyklus , der Folgendes umfasst:

  • Wichtige Dateien, die die KONSTANTEN der Anwendung definieren , die in der gesamten Anwendung und ihren Erweiterungen weit verbreitet sind.
  • Wenn Sie das Joomla-Framework und alle wichtigen Klassen laden , die für die spätere Anwendung der Anwendung erforderlich sind, überprüft das Framework auch, ob eine Konfigurationsdatei vorhanden ist , oder führt uns zum Installationsordner, um eine neue Joomla-Installation durchzuführen .
  • Das Anwendungsobjekt wird erstellt und initialisiert und das Sitzungszustand behandelt wird (neue oder bestehende Sitzung).
  • Die Konfigurationsdatei wird geladen - das gibt auch Zugriff auf die Datenbank.
  • Der Router wird aufgerufen. Der Router ist für die Übersetzung von URLs in ein assoziatives Array von Befehlen verantwortlich und umgekehrt. Diese Befehle werden als URL-Parameter verwendet und an SuperGlobal von PHP $_GETgesendet , um eine vollständige URL zu erstellen . Das optionElement dieses Arrays definiert die Komponente, die ausgeführt werden soll.
  • Mit der Ausführung der Komponente wird das Dokumentobjekt erstellt. Das Dokument wird im Speicher gespeichert und enthält Daten, die später im Browser zurückgegeben werden. Die Tatsache, dass es als Puffer im Speicher gespeichert ist, ermöglicht es, Inhalte in keiner bestimmten Reihenfolge und von jedem Ort aus darin abzulegen und zu bearbeiten. Die ausgewählte Vorlage wurde in der Konfiguration gespeichert. Es ist auch erwähnenswert, dass Joomla nur die Komponente ausführt. Was in diesem Schritt noch passieren sollte, ist die Aufgabe der Komponente.
  • Als nächstes folgt das Rendern der Seite , bei dem neben den Komponentendaten aus dem vorherigen Schritt auch Module und Benachrichtigungsnachrichten gerendert und an ihren Vorlagenpositionen platziert werden.
  • Der letzte Schritt ist die Ausgabe der Seite an den Browser .
  • Es ist wichtig zu beachten, dass in verschiedenen Phasen des obigen Ausführungszyklus Plugin-Ereignispunkte aufgerufen werden, die es den verschiedenen Ereignissen ermöglichen, die Joomla-Funktionalität zu stören und zu erweitern.

Eine detailliertere Liste des Ausführungsflusses mit den Plugin-Ereignissen ist hier dokumentiert: Joomla Application Execution Flow


4. Zusätzliche Ressourcen:

FFrewin
quelle
1

Kleiner Beitrag, die vollständige Liste von Joomla! Plugin-Ereignisse .

Gruber
quelle
klein aber
fein
Vielleicht könnten Sie die wichtigsten Teile dieser Seite hier schreiben
FFrewin
@FFrewin Ich würde aber im Grunde ist es eine lange Liste von Links von jedem Plugin-Ereignis! Ich versuche, eine Art "Zeitleiste" aller Ereignisse in dieser Liste zu finden, aber ich kann nicht viel darüber finden. Ich bin in Ihrer Antwort hier gestolpert, nachdem ich viel gegoogelt habe und der Joomla Application Execution Flow einige erwähnt hat der Systemgruppe Ereignisse, aber nicht viel über alle anderen.
Gruber
@FFrewin wäre auch eine Art Übersichtsbeschreibung aller verschiedenen Gruppen von Plugin-Ereignissen, aber ich habe nicht viel in den Joomla-Dokumenten gefunden (obwohl ich zugebe, dass meine GoogleFu heutzutage ein bisschen fehlt, weiß nicht warum, vielleicht ist die Hitze: P)
Gruber