Symfony2 and Single Webpage Applications używające struktury takiej jak AngularJS

(Jeśli to nie jest właściwe miejsce, aby opublikować tego rodzaju pytanie, chętnie zamieściłbym je gdzie indziej)

Próbuję zbudować interaktywną aplikację internetową do zarządzania zasobami firmy. Mam doświadczenie z Symfony2, ale w tej nowej aplikacji uderzyłem w ścianę.

Chciałbym, aby ta aplikacja była dość interaktywna po stronie klienta. Prawie pełna aplikacja do pojedynczej strony internetowej. Moje poprzednie aplikacje internetowe zwykle używają typowego wzorca MVC ze stronami CRUD.

W tych prostych aplikacjach chciałbym

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

Używanie symfony w tego rodzaju aplikacji dałoby mi wiele korzyści:

RoutingBezpieczeństwo (tokeny CSRF)FormTypes i obsługa formularzyUprawomocnienieIntegracja z doktrynąGałązka

Szczególnie taka funkcjonalność w Twig była bardzo odświeżająca (ponieważ moje modele zostały zbudowane jako jednostki Doctrine):

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

Problem, przed którym teraz stoję, jest taki, że czuję, że Symfony2 nie jest tak naprawdę zbudowany dla pojedynczych aplikacji internetowych.Jak tylko spróbuję dodać funkcjonalność Ajax, napotykam na te problemy:

Żetony CSRF są nieprawidłoweZbyt dużo logiki widoku / prezentacji wielokrotnego użytku w jQueryDodawanie atrybutów danych w html, aby uzyskać identyfikatory itp ...

Potem zajrzałem do Knockout.js i Angularjs, ale potem mam ochotę stracić wszystkie zalety Doctrine i Twig. Muszę zrekonstruować moje modele po stronie klienta i utrzymywać je w dwóch różnych lokalizacjach.

Więc wpadłem na ten pomysł:

Użyj modeli i kontrolerów Symfony2, aby utrwalić dane w bazie danych, ale pozwól kontrolerom w symfony po prostu wysyłać JSON i odbierać JSON (może FOSRestBundle?)Użyj frameworka takiego jak AngularJS lub KnockoutJS, aby odbudować dane JSON po stronie klienta, aby użyć wiązania dwukierunkowego.

Ale w jaki sposób poradziłbym sobie z takimi problemami jak Doctrine2 Relationships, Form Validation, CSRF, które Symfony już rozwiązał, ale są bezużyteczne, jeśli używam frameworka js?

Wszystkie sugestie są mile widziane!

questionAnswers(2)

yourAnswerToTheQuestion