Symfony и Single-page уеб приложения
Дали е възможно в някоя от следващите лекции да се представи накратко какъв би следвало да е подхода при изграждане на single-page приложения, в които да участва Symfony/Laravel или подобни.
По-специално ме интересува:
- Има ли въобще смисъл (ако изключим backend частта им)?
- В основата на Symfony е рутинга - как се връзва с SPA подхода, при който такъв практически липсва?
- Доста от популярните JS frameworks - KendoUI, ExtJS, Webix, идват със собствени развити компоненти за изграждане на форми - как/дали техните форми могат да се интегрират с form-функционалностите на Symfony? Например - във втората лекция видяхме как с една команда от конзолата Symfony генерира CRUD ресурси, вкл. форми - но какво правим ако искаме тези форми да идват от JS библиотека?
Опитвам се да схвана как Symfony би ми била полезна и как бих могъл да я ползвам в SPA проектите си, но от всичко разбрано досега - намирам приложение единствено за backend частта - модели, Doctrine. Не и за формите и рутинга. Едно пояснение в лекцията според мен ще е от полза на всички
Разбирам, вкл. и частта в P.S.
В такъв случай, може би ще е полезно да се демонстрира как да ползваме САМО ЧАСТ от бъндълите на Symfony в подобни приложения - доколкото разбрах това е възможно. Но чисто технически - би било полезно да се покаже как става, особено пък ако трябва symfony да се интегрира в готов проект. Например - представете си че имаме готово работещо приложение, при което комуникацията с базата данни и обработката на обектите в бекенда е направена по старомоден начин и искаме да се възползваме от Doctrine/Entity благините на Symfony за да сме в крак с времето.
Откъде въобще да започнем, инсталация, файлова структура? :)
Компонентите са библиотеки, които се намират в повечето инструменти за разрешаване на зависимости, като composer. Инсталираш това, което ти трябва, с composer и го получаваш в проекта си. После ползваш, както е документирано (в документацията на компонента) да се ползва. Напримeр Doctrine ще се наложи да си конфигурираш достъпа до базата, преди да инстанцираш EntityManager-а, например :-)
Например REST API не ти трябва Twig Bundle-а на Symfony. Достатъчен ти е Routing компонента, някоя библиотека за сериализиране (например JMSSerializer) и достъп до база (Doctrine, Propel). Пишеш си методчета в контролери, които връщат всички ресурси, единичен ресурс и т.н. в сериализиран JSON формат и ги правиш да отговарят на съответните семантични REST маршрути (пр. GET /api/users (all users); GET /api/users/{id} (single user); POST /api/users (create user); PUT /api/users/{id} (edit user)).
ОК, ако примерно имам готово написано приложение - но то няма нищо общо с файловата структура на едно Symfony приложение, какво ще се случи при инсталация с Composer на Symfony компонент, Routing-а например? Ще се създадат ли папки от рода на app, vendor и т.н. - и няма ли да се намажат с евентуално съществуващите такива?