Устранение ошибок MODX Revolution на php v.5.4.13

less than 1 minute read

В ходе развертывания MODX Revolution на сервере с php v.5.4.13 столкнулся с неработающей админкой и поиском.

В логе апача обнаружил следующую ошибку:

PHP Fatal error: Call to a member function setCacheable() on a non-object in core/cache/includes/elements/modsnippet/31.include.cache.php on line 31

Поиски в тырнетах не дали результата. Все советуют переустановить ModX, очистить папку core/cache и т.д.

Стоит ли говорить, что все эти советы бессмысленны.

Для устранения ее, нужно обернуть $tpl->setCacheable(false); в условный оператор, а именно:

if (is_object($tpl)) {
  $tpl->setCacheable(false);
}

Таким же подходом устраняется следующая бяка:

PHP Fatal error: Call to a member function get() on a non-object in core/model/modx/modmanagerresponse.class.php on line 41
if (is_object($action)){
  $action = $action->get('id');
}