Учебники

Грав — Жизненный цикл

В этой главе мы поймем жизненный цикл Grav. Grav Lifecycle определяет, как Grav обрабатывает, чтобы расширить Grav с помощью плагинов. На следующей диаграмме показан поток процесса жизненного цикла Grav.

Grav Lifecycle

Следующие четыре шага из жизненного цикла 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 .