Приложения Symfony2 и единой веб-страницы, использующие такую среду, как AngularJS

(Если это не то место, где можно публиковать подобные вопросы, я с радостью отправлю их куда-нибудь еще)

Я пытаюсь создать интерактивное веб-приложение для управления ресурсами компании. У меня есть опыт работы с Symfony2, но я вроде как врезался в стену с этим новым приложением.

Я хотел бы сделать это приложение довольно интерактивным на стороне клиента. Почти полное приложение на одной веб-странице. Мои предыдущие веб-приложения обычно просто использовали типичный шаблон MVC со страницами CRUD.

В этих простых приложениях я бы

/employees/
/employees/create
/employees/detail/45
/employees/update/45
/employees/delete/45

Использование Symfony в таком приложении дало бы мне много преимуществ:

маршрутизацияБезопасность (токены CSRF)FormTypes и обработка формПроверкаИнтеграция с Доктринойпрут

Особенно такая функциональность в Twig была очень освежающей (так как мои модели были построены как сущности доктрины):

<p>{{ employee.getCurrentTask().description }}</p>

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что я чувствую, что Symfony2 на самом деле не создан для приложений с одной веб-страницей.Как только я пытаюсь добавить функциональность Ajax, я сталкиваюсь с этими проблемами.:

Токены CSRF недействительныСлишком много неиспользуемой логики представления / представления в jQueryДобавление атрибутов данных в html для получения идентификаторов и т.д ...

Затем я посмотрел на Knockout.js и Angularjs, но потом чувствую, что теряю все преимущества Doctrine и Twig. В любом случае я должен перестроить свои модели на стороне клиента и поддерживать их в двух разных местах.

Итак, я пришел с этой идеей:

Используйте модели и контроллеры Symfony2 для сохранения данных в базе данных, но пусть контроллеры в Symfony просто отправляют JSON и получают JSON (может быть, FOSRestBundle?)Используйте такую инфраструктуру, как AngularJS или KnockoutJS, чтобы перестроить эти данные JSON на стороне клиента для использования двухстороннего связывания.

Но тогда как мне решить такие проблемы, как Doctrine2 Relationships, Form Validation, CSRF, которые Symfony уже решили, но которые невозможно использовать, если я использую frontend js framework?

Все предложения приветствуются!

Ответы на вопрос(2)

Ваш ответ на вопрос