В этой главе мы поймем жизненный цикл Grav. Grav Lifecycle определяет, как Grav обрабатывает, чтобы расширить Grav с помощью плагинов. На следующей диаграмме показан поток процесса жизненного цикла Grav.
Следующие четыре шага из жизненного цикла Grav —
-
Версия PHP
-
Класс загрузчика инициализирован
-
Получить Грав инстанс
-
Call Grav Process
Версия PHP
Класс загрузчика инициализирован
Получить Грав инстанс
Call Grav Process
Версия PHP
Он проверяет версию PHP, чтобы убедиться, что мы используем версию PHP выше 5.4.0.
Класс загрузчика инициализирован
На втором этапе загрузчик класса инициализируется.
Получить Грав инстанс
-
Если экземпляра не существует, он вызывает метод load () и добавляет Grav.
-
Он инициализирует значение отладчика и добавляет к отладчику.
-
Он регистрирует журнал и обработчик ошибок.
-
Он добавляет URI, задачу, события, кэш, сессию, плагины, темы, ветку, таксономию, язык, страницы, ресурсы и базовый URL.
-
Он регистрирует поток и обработчик конфигурации.
Если экземпляра не существует, он вызывает метод load () и добавляет Grav.
Он инициализирует значение отладчика и добавляет к отладчику.
Он регистрирует журнал и обработчик ошибок.
Он добавляет URI, задачу, события, кэш, сессию, плагины, темы, ветку, таксономию, язык, страницы, ресурсы и базовый URL.
Он регистрирует поток и обработчик конфигурации.
Call Grav Process
-
Он инициализирует конфигурацию, объект Uri, обработчик ошибок, отладчик и сеанс.
-
После инициализации он начинает буферизовать вывод.
-
Он инициализирует часовой пояс и плагины и запускает событие onPluginsInitialized .
-
Затем он инициализирует тему и запускает события onThemeInitialized и onTask [TASK] .
-
Он инициализирует активы и запускает событие onAssetsInitialized .
-
Инициализирует веточку следующими действиями —
-
В зависимости от конфигурации он устанавливает пути к шаблонам веток.
-
Обрабатывает доступные языковые шаблоны.
-
Затем он запускает событие onTwigTemplatePaths .
-
Загружена цепочка загрузчика и конфигурация ветки.
-
Запускает событие onTwigInitialized .
-
Он загружает расширения веток и запускает событие onTwigExtensions .
-
Он устанавливает стандартные переменные ветки.
-
-
Затем он инициализирует страницы.
-
Он вызывает метод buildPages () .
-
Если кеш хорош, то он загружает страницы из кеша. Если кеш не подходит, вызывается метод recurse () .
-
Событие onBuildPagesInitialized вызывается в методе recurse () .
-
Если файл найден как .md , выполняются следующие действия:
-
Для загрузки сведений о файле вызывается метод init () .
-
Он устанавливает filePath, модифицированный и id.
-
Метод header () вызывается для инициализации переменных заголовка.
-
Метод slug () вызывается для установки URL-адреса.
-
Метод visible () вызывается для установки видимого состояния.
-
На основании папки, которая начинается с _ (подчеркивание), устанавливается modularTwig () .
-
-
Позже он запускает событие onPageProcessed .
-
recurse () детей, если папка найдена.
-
Вызывает событие onFolderProcessed .
-
вызывает метод buildRoutes ()
-
Для всех страниц таксономия инициализирована
-
Таблица маршрутов построена для быстрого поиска.
-
-
События onPagesInitialized и onPageInitialized запускаются .
-
Отладчик CSS / JS добавлен в ресурсы.
-
Используя метод Twig processSite () , мы получаем вывод.
-
Событие onTwigSiteVariables вызывается.
-
Получает вывод страницы.
-
Когда страница не найдена или не маршрутизируется, вызывается событие onPageNotFound .
-
Все переменные Twig установлены на объекте Twig.
-
Имя шаблона устанавливается в зависимости от файла / заголовка / информации о расширении.
-
Метод render () вызывается.
-
Возвращает формат файла в HTML
-
-
Вызывает событие onOutputGenerated .
-
Установите заголовки HTTP.
-
Отображает вывод
-
Выходной буфер сбрасывается на страницу.
-
Событие onOutputRendered будет запущено .
-
Закрывает соединение с клиентом.
-
Наконец, он запускает событие onShutDown .
Он инициализирует конфигурацию, объект Uri, обработчик ошибок, отладчик и сеанс.
После инициализации он начинает буферизовать вывод.
Он инициализирует часовой пояс и плагины и запускает событие onPluginsInitialized .
Затем он инициализирует тему и запускает события onThemeInitialized и onTask [TASK] .
Он инициализирует активы и запускает событие onAssetsInitialized .
Инициализирует веточку следующими действиями —
В зависимости от конфигурации он устанавливает пути к шаблонам веток.
Обрабатывает доступные языковые шаблоны.
Затем он запускает событие onTwigTemplatePaths .
Загружена цепочка загрузчика и конфигурация ветки.
Запускает событие onTwigInitialized .
Он загружает расширения веток и запускает событие onTwigExtensions .
Он устанавливает стандартные переменные ветки.
Затем он инициализирует страницы.
Он вызывает метод buildPages () .
Если кеш хорош, то он загружает страницы из кеша. Если кеш не подходит, вызывается метод recurse () .
Событие onBuildPagesInitialized вызывается в методе recurse () .
Если файл найден как .md , выполняются следующие действия:
Для загрузки сведений о файле вызывается метод init () .
Он устанавливает filePath, модифицированный и id.
Метод header () вызывается для инициализации переменных заголовка.
Метод slug () вызывается для установки URL-адреса.
Метод visible () вызывается для установки видимого состояния.
На основании папки, которая начинается с _ (подчеркивание), устанавливается modularTwig () .
Позже он запускает событие onPageProcessed .
recurse () детей, если папка найдена.
Вызывает событие onFolderProcessed .
вызывает метод buildRoutes ()
Для всех страниц таксономия инициализирована
Таблица маршрутов построена для быстрого поиска.
События onPagesInitialized и onPageInitialized запускаются .
Отладчик CSS / JS добавлен в ресурсы.
Используя метод Twig processSite () , мы получаем вывод.
Событие onTwigSiteVariables вызывается.
Получает вывод страницы.
Когда страница не найдена или не маршрутизируется, вызывается событие onPageNotFound .
Все переменные Twig установлены на объекте Twig.
Имя шаблона устанавливается в зависимости от файла / заголовка / информации о расширении.
Метод render () вызывается.
Возвращает формат файла в HTML
Вызывает событие onOutputGenerated .
Установите заголовки HTTP.
Отображает вывод
Выходной буфер сбрасывается на страницу.
Событие onOutputRendered будет запущено .
Закрывает соединение с клиентом.
Наконец, он запускает событие onShutDown .
Когда метод content () вызывается на странице, происходит следующий жизненный цикл.
Событие onPageContentRaw будет запущено .
В соответствии с настройками Markdown и Twig обрабатывает страницу.
Вызывает событие onPageContentProcessed .