fr:devel:overview
Exploration du code source
Il s’agit d’une exploration du code source lors d’une requête /doku.php?id=start&do=show pour expliquer les bases de DokuWiki. Lorsque vous lisez ceci, vous devez avoir le code source complet disponible pour profiter pleinement de ce voyage. Utilisez les liens XRef pour obtenir une version des sources pouvant être parcourue. Il existe également une page callgraph plus détaillée, incluant le processus de rendu. Beaucoup de détails sont laissés en dehors de cette description pour la simplifier.
| Nom du fichier | Extrait de code | Description |
|---|---|---|
| doku.php | if(!defined('DOKU_INC')) | Tout commence ici en définissant le répertoire du code de base |
$ACT = $_REQUEST['do'] | Ensuite, nous déterminons quelle action est demandée a.k.a. modes d'action | |
require_once('init.php') | sur init.php, initialise le noyau | |
| inc/init.php | include('preload.php') | preload permet de remplacer les répertoires et la configuration en cascade |
if(!defined('DOKU_CONF') | crée des définitions d'environnement pour l'emplacement du code | |
include(DOKU_INC. 'inc/config_cascade.php') | prépare et charge le(s) fichier(s) global(aux) de configuration | |
global $lang; | charge et prépare les fichiers de langue, en anglais pour toutes les entrées manquantes | |
if(!defined('DOKU_REL') | crée toutes les définitions d'environnement pas encore définies, et qui pourrait dépendre des paramètres de configuration | |
if(!headers_sent() && .. | démarre la session d'initialisation et la définition des cookies | |
require_once (DOKU_INC.'inc/load.php') | auto charge toutes les bibliothèques | |
… | initialise le contrôleur de greffons, le Système d’événement, l'authentification et quitte après la configuration du mail | |
| doku.php | $ID = getID() | de retour d'init.php, assainit et transforme la requête en variables globales |
$INFO = pageinfo() | ajoute la page métadonnées dans une variable globale, ceci inclut l'appel de auth_quickaclcheck () et de p_get_metadata(). Cette dernière provoque un rendu des métadonnées de page si elles ne sont pas mises en cache. | |
if(!$INFO['exists'] … | envoie 404 pour les pages manquantes | |
trigger_event(DOKUWIKI_STARTED) | appelle Action plugin abonnant l'événement DOKUWIKI_STARTED | |
| inc/actions.php | act_dispatch($ACT) | fait le travail en fonction de l'action |
if ($evt->advise_before()) ... | permet aux greffons de remplacer le comportement par défaut en utilisant l'événement ACTION_ACT_PREPROCESS | |
$ACT = act_clean($ACT) | assainit et redirige disabled actions dans do=show |
|
… | appelle le code de traitement pour les actions demandées lors de la vérification des autorisations ACL nécessaires. Le $ACT pourrait changer durant act_dispatch (). | |
global $INFO | rend les variables globales accessibles au code du thème | |
trigger_event(ACTION_HEADERS_SEND) | appelle action_plugins abonnant l'événement ACTION_HEADERS_SEND | |
include(template('main.php')) | sur le script principal du thème sélectionné | |
| lib/tpl/default/main.php | … | le code principal template consiste en des éléments de conception HTML faisant appel à des méthodes php pour des contenus tels que des méta-entêtes, des boutons, des éléments de navigation dans le fil d'Ariane, etc., tous disponibles dans le fichier inc/template.php |
tpl_content() | ici la page wiki actuelle est créée | |
| inc/template.php | ||
trigger_event(TPL_ACT_RENDER) | appelle tpl_content_core () à l'aide de l'événement TPL_ACT_RENDER | |
switch($ACT) | sélectionne le contenu en fonction de l'action, les appels de base do=show html_show () |
|
| inc/html.php | $html = p_wiki_xhtml(…) | qui utilise une version XHTML mis en cache de la page OR déclenche le parser pour restituer les instructions mises en cache au format XHTML OR, de façon à transformer le wiki texte dans les instructions en premier. |
| inc/template.php | trigger_event(TPL_CONTENT_DISPLAY) | de retour dans tpl_content () action plugins a une dernière chance de modifier le code HTML brut avant la sortie en utilisant l'événement TPL_CONTENT_DISPLAY |
| doku.php | trigger_event(DOKUWIKI_DONE) | termine en appelant action plugins en souscrivant à l'événement DOKUWIKI_DONE à la fin du script principal du thème |
Crédits
- Traduction : hieradex
- Mise à jour : — digitalin 2020-08-22 18:37
fr/devel/overview.txt · Dernière modification : de Klap-in
