compiledPath в phalconphp

compiledPath в volt от phalconphp упорно не хотел работать, решение оказалось простым

Настройки Volt скопипастил из официальной документации

$volt = new Volt($view, $di);

$volt->setOptions(array(
    "compiledPath" => __DIR__."/../app/volt/"
));

return $volt;

Согласно документации все скомпилированные шаблоны должны складываться в указанную папочку, имя файла образуется из пути до volt шаблона и расширения php по умолчанию. Разделители реального пути заменяются на последовательность «%%», которую можно переопределить указанием опции compiledSeparator.

папка views phalconphp

Но вот настройки наглым образом игнорировались и все скомпилированные шаблоны оказывались рядом с оригиналами , созданная специально для них папочка app/volt оставалась до настоящего времени пустой.

И не парило это меня до тех пор, пока не пришлось выложить проект на сервер, открывать все папки views на запись — откровенно хреновое решение, поэтому проблему пришлось решать.

Баг оказался в документации. Хоть и у экземпляра Phalcon\Mvc\View\Engine\Volt есть метод setOptions, но вот для наших целей настройки надо задавать для компилера, а не для движка, поэтому всего навсего надо наш вызов переписать как:

$volt->getCompiler()->setOptions(array(
    "compiledPath" => __DIR__.'/../app/volt/'
));