Вчера внезапно twig перестал видеть пути к шаблонам. Стоит отметить что у меня для шаблонов немного кастомная структура поэтому в первую очереть начал грешить на изменения в твиговском лоадере в который можно передавать свои пути к шаблонам. Выглядит это примерно так


$this->twig->getLoader()->addPath('../app/Resources/templates/'.$result->getTemplateName());

 Оказалось что не там искал, не совсем там. Вспомнил что до этого обновлял twig и получил версию 1.26, в которой были правки в /home/wargot/www/cms.local/vendor/twig/twig/lib/Twig/Loader/Filesystem.php. В нашем случае меня интересовал метод getSource на строке 129. Из него идёт вызов findTemplate. Сама проблема в вызове normalizePath() в блоке


        foreach ($this->paths[$namespace] as $path) {
            if (is_file($path.'/'.$shortname)) {
                return $this->cache[$name] = $this->normalizePath($path.'/'.$shortname);
            }
        }

 

Тут при вызове normalizePath из базового пути исчезает ../ и становиться грустно. Fabien кстати эту ошибку поправил на github.com

Так как fix ещё в ветке dev прописываем в composer.json разрешение на работу с dev


"twig/twig": "^1.2-dev"

Прощай ошибка Warning: file_get_contents(app/Resources/templates/wargot_com_2016/content/all.html.twig): failed to open stream: No such file or directory

English version:

1. bla-bla-bla

2. update in composer.json


"twig/twig": "^1.2-dev"

3. in console "composer update"

4. Profit