Как интегрировать Mustache с Symfony?

Я хотел бы заменить стандартный шаблон symfony1.4 на Mustache. К моему удивлению, я не могу найти соответствующий подход в поиске Google.

Тогда, я полагаю, я могу сделать это простым способом.

public function executeIndex(sfWebRequest $request)
{
include('/path/to/Mustache.php');
   $m = new Mustache();
   echo $m->render('Hello {{planet}}', array('planet' => 'World!'));

   return sfView::NONE;
}

Это выглядит неуклюже. Основные проблемы:

Где хранить шаблон усов ("Hello {{planet}}" в моем случае)?

Можно ли заменить обработчик представления по умолчанию? чтобы я мог поместить шаблон усов в папку шаблонов и быть прозрачным для действий?

Спасибо


person Morgan Cheng    schedule 07.07.2011    source источник


Ответы (2)


Я думаю, что лучший способ реализовать это — создать новую реализацию sfView. В настоящее время sfPhpView является классом по умолчанию для рендеринга вывода. Вы можете расширить этот класс и использовать Mustache для рендеринга.

Вы можете посмотреть sfSmartyPlugin, чтобы увидеть, как они реализовали Smarty Template Engine...

person Grad van Horck    schedule 07.07.2011

Может быть, вы можете взглянуть на ветку. Он похож на musatche и хорошо интегрирован с symfony (twig создан Фабьеном Потенсье, создателем symfony). Это плагин для Symfony 1.x: https://github.com/henrikbjorn/sfTwigPlugin

person dxb    schedule 07.07.2011
comment
хм~, я предпочитаю усы, так как у них есть зрелая библиотека JavaScript и PHP. Шаблоны можно использовать как на стороне браузера, так и на стороне сервера. - person Morgan Cheng; 07.07.2011
comment
Спасибо за комментарий. Я, может быть, слишком ориентирован на фабпот. - person dxb; 07.07.2011