Skip to content

Настройки

Три системные настройки MODX, область parser:

НастройкаЧто делаетПо умолчанию
pageblocks_elements_pathКаталог файловых шаблонов для @FILE и file:.{core_path}App/elements/
pageblocks_file_elements_onlyБрать шаблоны только из файлов, чанки из базы не использовать.false
pageblocks_fenom_auto_reloadПерекомпилировать шаблон, когда файл изменился.true

Путь абсолютный, а не «от core/»

Значение подставляется в файловый путь целиком, поэтому оно должно быть абсолютным. Подстановки {core_path}, {base_path}, {assets_path} MODX раскрывает сам — на этом и держится дефолт {core_path}App/elements/. Написать App/elements/ нельзя: путь посчитается от текущего рабочего каталога, каталог не найдётся, и в лог уйдёт [Fenom Init] Template directory does not exist.

pageblocks_file_elements_only

Включённая настройка не просто «ускоряет» — она меняет разбор имени шаблона:

  • имя без префикса читается как file:, а не как чанк MODX;
  • провайдер template: не регистрируется вовсе.

То есть {include 'header'} после включения ищет header.tpl на диске. Настройка для проектов, где элементы держат в git, а не в базе.

pageblocks_fenom_auto_reload

Выключать в продакшене имеет смысл только там, где шаблоны не меняются между деплоями: выключенная настройка означает, что правка .tpl не подхватится, пока не сбросят кэш. В pbFenom проверка актуальности дешёвая — realpath() убран с горячего пути, страница с {extends} и двадцатью {include} стоит 7,6 мкс против 4,5 мкс без автоперезагрузки, — так что экономия здесь небольшая.

Что жёстко задано в коде

Остальное движок получает из View::init(), настройками это не правится:

ОпцияЗначениеПочему
каталог кэшаcore/cache/pbfenom/чистится вместе с кэшем MODX
force_includetrue{include} компилируется в тело родителя
force_verifytrueнеобъявленная переменная — пустая строка, а не warning
force_compile, disable_cachefalseартефакт пишется на диск и переиспользуется
disable_native_funcsне заданасм. Функции PHP

Очистка кэша

Скомпилированные шаблоны лежат в core/cache/pbfenom/. Сброс кэша из менеджера MODX вызывает:

php
View::clearCache();

Отдельно чистить каталог руками не нужно — при auto_reload правка файла и так приводит к перекомпиляции.

© PageBlocks 2019-present