Настройки
Три системные настройки 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_include | true | {include} компилируется в тело родителя |
force_verify | true | необъявленная переменная — пустая строка, а не warning |
force_compile, disable_cache | false | артефакт пишется на диск и переиспользуется |
disable_native_funcs | не задана | см. Функции PHP |
Очистка кэша
Скомпилированные шаблоны лежат в core/cache/pbfenom/. Сброс кэша из менеджера MODX вызывает:
View::clearCache();Отдельно чистить каталог руками не нужно — при auto_reload правка файла и так приводит к перекомпиляции.