wiki:overview
Это старая версия документа!
Обзор ядра
Это описание базового поведения «DokuWiki» во время отработки запроса на отображения страницы /doku.php?id=start&do=show. У вас под рукой должны быть исходники для понимания этого процесса. Можно также использовать он-лайн версию API документации XRef. А это графическое представление процесса создания страницы диаграмма вызовов. Много деталей было опущено для упрощения этого описания.
| Имя файла | Пример кода | Описание |
|---|---|---|
| doku.php | '' if(!defined('DOKU_INC')) '' | Все начинается с определения корневого каталога вики |
| '' $ACT = $_REQUEST['do'] '' | дальше определяется тип действия которое запрашивается, например do режим | |
| '' require_once('init.php') '' | с помощью init.php, инициализируется ядро | |
| inc/init.php | '' include('preload.php') '' | предзагрузка делает возможным перезапись каталогов и конфигураций |
| '' if(!defined('DOKU_CONF') '' | создание окружения определяет расположение кода | |
| '' include(DOKU_INC. 'inc/config_cascade.php') '' | подготовка и загрузка глобальной конфигурации файла(ов) | |
| '' global $lang; '' | загружает и подготавливает языковые файлы используя «английские» для всех не найденных вхождений | |
| '' if(!defined('DOKU_REL') '' | создает остальные переменные_окружения которые еще не были созданы, так как зависели от конфигурационных настроек | |
| '' if(!headers_sent() && .. '' | создание сессии и установка куков | |
| '' require_once (DOKU_INC.'inc/load.php') '' | подгружает все библиотеки | |
| '' … auth_setup() … '' | инит контроллера плагинов, системы перехвата событий, аутентификации и выход после настройки почты | |
| doku.php | '' $ID = getID() '' | возврат из init.php, очистка и передача запроса на глобальные переменные |
| '' $INFO = pageinfo() '' | добавление метаданных страницы в глобальные переменные с помощью auth_quickaclcheck() и p_get_metadata(). Позже вызывается ее рендеринг, если она не кешируется. | |
| '' if(!$INFO['exists'] … '' | отправляет 404 для не найденных страниц | |
| '' trigger_event(DOKUWIKI_STARTED)'' | запускает плагины действий которые слушают DOKUWIKI_STARTED события | |
| inc/actions.php | '' act_dispatch($ACT) '' | выполняет работы по указанному действию |
if ($evt->advise_before()) ... | позволяет плагинам переопределять обычное поведение используя событие ACTION_ACT_PREPROCESS | |
| '' $ACT = act_clean($ACT) '' | очистка и перенаправление отключенных действий на действие отображения страницы do=show |
|
| '' … $ACT = act_permcheck($ACT) … '' | проверяет ACL-разрешения на выполнение запрошенных действий. Переменная $ACT может меняться в процессе выполнения act_dispatch(). | |
| '' global $INFO global $conf '' | делает доступными глобальные переменные для кода шаблона | |
| '' trigger_event(ACTION_HEADERS_SEND) '' | запускает экшен плагины по событию ACTION_HEADERS_SEND | |
| '' include(template('main.php')) '' | добавляет базовый код страницы в выбранный шаблон | |
| lib/tpl/default/main.php | '' … tpl_metaheaders() … '' | главный скрипт шаблона состоит из элементов HTML дизайна с включением php запросов для наполнения контента как например метазаголовки, кнопки, элементы навигации и тд.. все находится в inc/template.php файле |
| '' tpl_content() '' | здесь создаются вики-страницы | |
| inc/template.php | ||
| '' trigger_event(TPL_ACT_RENDER) '' | вызов tpl_content_core() по событию TPL_ACT_RENDER | |
| '' switch($ACT) '' | выбор контента на основании действия, основной do=show вызывает html_show() |
|
| inc/html.php | '' $html = p_wiki_xhtml(…) '' | который использует кешированную XHTML версию страницы ИЛИ запускает парсер-визуализатор для отображения закэшированных инструкции как XHTML ИЛИ использует парсер для перевода вики текста в инструкции, в первую очередь. |
| inc/template.php | '' trigger_event(TPL_CONTENT_DISPLAY) '' | возврат в tpl_content(). action-плагины имеют последний шанс на модификацию сырого HTML перед его отображением по событию TPL_CONTENT_DISPLAY |
| doku.php | '' trigger_event(DOKUWIKI_DONE) '' | завершение и вызов action-плагинов которые ждут DOKUWIKI_DONE события, после завершения работы главного скрипта шаблона |
Только авторизованные участники могут оставлять комментарии.
wiki/overview.1692361631.txt.gz · Последнее изменение: (внешнее изменение)
