Grav - Жизненный цикл

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

Следующие четыре шага из жизненного цикла Grav -

  • PHP Version

  • Loader class is initialized

  • Obtain Grav Instance

  • Call Grav Process

Версия PHP

Он проверяет версию PHP, чтобы убедиться, что мы используем версию PHP выше 5.4.0.

Класс загрузчика инициализирован

На втором этапе инициализируется загрузчик классов.

Получить экземпляр Grav

  • Если экземпляра не существует, он вызывает метод load () и добавляет Grav.

  • Он инициализирует значение отладчика и добавляет к отладчику.

  • Он регистрирует журнал и обработчик ошибок.

  • Он добавляет URI, задачу, события, кеш, сеанс, плагины, темы, ветку, таксономию, язык, страницы, ресурсы и базовый URL.

  • Он регистрирует поток и обработчик конфигурации.

Вызов Grav Process

  • Он инициализирует конфигурацию, объект Uri, обработчик ошибок, отладчик и сеанс.

  • После инициализации он начинает буферизацию вывода.

  • Он инициализирует часовой пояс и плагины и запускает событие onPluginsInitialized .

  • Затем он инициализирует тему и запускает события onThemeInitialized и onTask [TASK] .

  • Он инициализирует активы и запускает событие onAssetsInitialized .

  • Он инициализирует ветку следующими действиями -

    • В зависимости от конфигурации он устанавливает пути к шаблону ветки.

    • Обрабатывает доступные языковые шаблоны.

    • Затем он запускает событие onTwigTemplatePaths .

    • Загрузочная цепь и конфигурация прутка загружены.

    • Пожары onTwigInitialized события.

    • Он загружает расширения ветки и запускает событие onTwigExtensions .

    • Он устанавливает стандартные переменные ветки.

  • Затем он инициализирует страницы.

    • Он вызывает метод buildPages () .

    • Если кеш в порядке, то он загружает страницы из кеша. Если кеш плох, вызывается метод recurse () .

    • Событие onBuildPagesInitialized запускается в методе recurse () .

    • Если файл найден как .md , выполняются следующие действия:

      • Для загрузки сведений о файле вызывается метод init () .

      • Он устанавливает путь к файлу, измененный и идентификатор.

      • Метод 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 .