fenom-template / fenom

Template Engine for PHP. Maintainers wanted!
Other
446 stars 108 forks source link

Проблема с опцией auto_strip #140

Closed maxisoft-git closed 8 years ago

maxisoft-git commented 9 years ago

После последнего обновления перестала работать данная опция, при ее включении шаблон вообще не генерируется при этом ошибок выполенния нет.

sleuthhound commented 9 years ago

Странно, у меня вроде все работает. Пробовал так

$fenom->setOptions(array("strip" => true));

и так

$fenom->setOptions(Fenom::AUTO_STRIP);
maxisoft-git commented 9 years ago

Значит мне как и в прошлый раз повезло споймать странный баг, который не повторяется у других. :)

sleuthhound commented 9 years ago

Вы через маску задаете или массив?

maxisoft-git commented 9 years ago
        $fenom = Fenom::factory(
            $tpl_folder,
            PATH . '/cache',
            array(
                'auto_reload'   => true,
                'force_include' => true
            )
        );
bzick commented 9 years ago

Странно, проверю тесты. @maxicms может пока скинете образец где не работает?

sleuthhound commented 9 years ago

С утречка попробовал еще раз - работает.

$fenom = Fenom::factory(
    '../application/Views/Template',
    '../application/Caches',
    array(
       'auto_reload' => true,
       'force_include' => true,
       'strip' => true
    )
);
sleuthhound commented 9 years ago

При включенной опции AUTO_STRIP и использовании коротких комментариев во вставках JavaScript - кеш шаблона в этих местах представляет из себя одну строку с нарушенной структурой JS. Используем в этих случаях только многострочные комментарии.

Может добавить при включенном AUTO_STRIP вырезание всех комментариев из кода? Хотя накладно наверно.

bzick commented 9 years ago

Это довольно затруднительно так как AUTO_STRIP не вкурсе какой код (js, html или даже комбинированный вариант) он обрабатывает.

pafnuty commented 9 years ago

@Sleuthhound возможно стоит попробовать вынести js в отдельный файл? Или есть непреодолимые сложности?

sleuthhound commented 9 years ago

Бывает, что код надо собрать из заранее динамически сформированных кусочков, а я привык одно строчные комментарии лепить, сначала не понял, что за глюк, а потом дошло))

pafnuty commented 9 years ago

Да, однострочные небольшие комментарии удобнее и писать и читать. Но я всегда стараюсь выносить js в js-файлы, а если есть динамические данные, то стараюсь рассовывать по data-* атрибутам тегов (как правило динамика заключается в данных для обработки событий) и уже их отлавливаю в js. Если данных много пишу примерно так:

<button data-params='{"param1": "data1", "param2": "data2"}'>купить</button>

В данном случаи очень удобно пользоваться json_encode()? да и с данными проще работать потом :smile:

sleuthhound commented 9 years ago

Так то да, надо будет пересмотреть все, сейчас пока просто делаю, лишь бы работало)) Набросок функционала, так сказать. Да и динамические места вроде связанны только с данными библиотеки Select2, остальное точно можно вынести в отдельный файл.

bzick commented 8 years ago

Проверьте, должна работать в последних версиях шабонизатора