Cos'è Joomla Execution Flow, dopo che una richiesta ha raggiunto index.php fino all'output finale sul browser?


8

Sulla base di questa domanda: come funzionano i template e caricano i file css / js? Processo di costruzione del sito Web con Purezza III

Citazione:
.... domani devo presentare il mio sito Web e potrei chiedermi "da dove provengono i contenuti?" e non posso rispondere perché non lo capisco da solo.

Cosa succede se chiamo il sito? Nel file index.php c'è il codice php ma non riesco a trovare il punto in cui il resto del sito Web viene "chiamato" o qualcosa del genere ...

e anche su tipi di domande come questa: dove si trovano i file di Joomla

Ho deciso di creare questo Q / A per lavorare come riferimento per tutte le domande simili. Chiunque desideri contribuire a rendere questo un solido post wiki della community è il benvenuto.

Risposte:


13

ToC di risposta
1. Introduzione per principianti + collegamento risorse per principianti
2. Informazioni su Joomla Architecture
3. Joomla Execution Flow - Come funziona Joomla
4. Risorse supplementari

1. Introduzione per principianti

L'uso di Joomla per la creazione di siti è piuttosto semplice, in quanto fornisce un'area di amministrazione amichevole. Nella maggior parte dei casi questo è tutto ciò che è necessario sapere per gli utenti finali e i progettisti.

Molti principianti con una certa conoscenza dei classici html e css statici, hanno la stessa domanda / aspettativa comune: come modificare i propri file / contenuti, visto che vengono visualizzati sul proprio browser.

Tuttavia, il modo in cui Joomla lavora dietro le quinte, è molto più complicato della modifica di un file html e richiede conoscenze ed esperienza di programmazione avanzate per comprenderlo appieno.

Quindi, come risposta breve: non aspettarti di aprire l' app FTP / File Manager e trovare un file chiamato:, myArticle.htmlo index.htmlche ti permetterà di modificarlo direttamente o cambiare l'aspetto degli elementi html della tua pagina.

Per iniziare, suggerirei di imparare prima le basi di Joomla e come gestirlo dal backend. Lentamente, lentamente saranno acquisite più conoscenza ed esperienza.

Risorse per principianti

Un argomento con risorse utili ed esercitazioni può essere trovato qui:
Tutorial per principianti Joomla - Come iniziare con Joomla?


2. Informazioni su Joomla Architecture

Joomla è più di un moderno CMS basato su PHP. È un progetto web avanzato che incorpora un'architettura multi-layer, che include:

  • Il framework Joomla, incluse le librerie di terze parti su cui si basa il framework, e i plugin che estendono il framework.
  • Separare le applicazioni Web come il sito dell'amministratore, il sito front-end, l'installazione.
  • Il livello estensioni (moduli, componenti, modelli) che estendono il framework Joomla e le applicazioni.

Joomla implementa vari concetti di programmazione avanzata, programmazione orientata agli oggetti , modello di progettazione MVC e altri modelli di progettazione comuni, un sistema di modelli ecc. Inoltre, non dimenticare di menzionare che Joomla utilizza un database in cui i dati vengono salvati e recuperati quando richiesto per essere visualizzati su schermo.


3. Descrizione semplice e breve del ciclo di esecuzione di Joomla - Come funziona Joomla

Quando raggiungi il index.phpsito di a Joomla (l'applicazione JSite front-end), inizia un ciclo di esecuzione completamente nuovo , che include:

  • Importanti includono i file che definiscono i COSTANTI dell'applicazione che sono ampiamente utilizzati nell'applicazione e nelle sue estensioni.
  • Caricamento del framework Joomla e di tutte le sue Classi essenziali necessarie affinché l'applicazione funzioni in futuro, il framework controlla anche se è presente un file di configurazione oppure dovrebbe portarci nella cartella di installazione per effettuare una nuova installazione di Joomla .
  • L' oggetto Application viene creato e inizializzato e lo stato della sessione viene gestito (sessione nuova o esistente).
  • La configurazione del file viene caricato - che dà anche l'accesso al database.
  • Il router si chiama. Il router è responsabile della traduzione degli URL in una matrice associativa di comandi e viceversa. Questi comandi verranno utilizzati come parametri dell'URL e inviati al SuperGlobal di PHP$_GET per creare un URL completo. L' optionelemento di questo array è quello che definisce il componente che dovrebbe essere eseguito.
  • Con l'esecuzione del componente, viene creato l' oggetto documento . Il documento è archiviato in memoria e contiene i dati che verranno restituiti in seguito sul browser. Il fatto che sia archiviato come buffer in memoria consente di inserire e manipolare il contenuto in esso in nessun ordine particolare e da qualsiasi posizione. Il modello selezionato è stato memorizzato nella configurazione. Inoltre, vale la pena notare che l'unica cosa che Joomla sta facendo è eseguire il componente. Cos'altro dovrebbe succedere durante questo passaggio è il lavoro del componente.
  • Successivamente viene visualizzato il rendering della pagina , dove accanto ai dati dei componenti del passaggio precedente, i moduli e i messaggi di notifica vengono anche visualizzati e posizionati nelle loro posizioni del modello.
  • Il passaggio finale consiste nell'output della pagina nel browser .
  • È importante notare che durante le varie fasi del suddetto ciclo di esecuzione, vengono chiamati punti Eventi plug-in che consentono ai vari eventi di interferire ed estendere la funzionalità di Joomla.

Un elenco del flusso di esecuzione più dettagliato, con gli eventi del plug-in è documentato qui: Joomla Application Execution Flow


4. Risorse supplementari:


1

Piccolo contributo, l'elenco completo di Joomla! Eventi plug-in .


piccolo ma utile
FFrewin

forse potresti scrivere qui le parti più essenziali di quella pagina
FFrewin

@FFrewin Lo farei, ma fondamentalmente è un lungo elenco di link di ogni evento Plugin! Sto cercando di trovare una sorta di "sequenza temporale" di tutti gli eventi in questo elenco ma non riesco a trovare molto al riguardo, mi sono imbattuto nella tua risposta qui dopo un sacco di ricerche su Google e il flusso di esecuzione delle applicazioni Joomla ne menziona alcuni del gruppo di sistema Eventi, ma non molto su tutti gli altri.
Gruber,

Anche @FFrewin sarebbe utile una sorta di descrizione panoramica di tutti i diversi gruppi di eventi plugin, ma non ho trovato molto nei documenti di Joomla (anche se ammetto che il mio GoogleFu è un po 'carente in questi giorni non so perché, forse è il caldo: P)
Gruber,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.