DokuWiki

It's better when it's simple

Outils pour utilisateurs

Outils du site


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

auth_setup()
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

$ACT = act_permcheck($ACT)
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
global $conf
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
tpl_metaheaders()
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

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki