Професионална програма
Loading...
+ Нов въпрос
mx_starter avatar mx_starter 2 Точки

Symfony и Single-page уеб приложения

Дали е възможно в някоя от следващите лекции да се представи накратко какъв би следвало да е подхода при изграждане на single-page приложения, в които да участва Symfony/Laravel или подобни.

По-специално ме интересува:

  • Има ли въобще смисъл (ако изключим backend частта им)?
  • В основата на Symfony е рутинга - как се връзва с SPA подхода, при който такъв практически липсва?
  • Доста от популярните JS frameworks - KendoUI, ExtJS, Webix, идват със собствени развити компоненти за изграждане на форми - как/дали техните форми могат да се интегрират с form-функционалностите на Symfony? Например - във втората лекция видяхме как с една команда от конзолата Symfony генерира CRUD ресурси, вкл. форми - но какво правим ако искаме тези форми да идват от JS библиотека?

Опитвам се да схвана как Symfony би ми била полезна и как бих могъл да я ползвам в SPA проектите си, но от всичко разбрано досега - намирам приложение единствено за backend частта - модели, Doctrine. Не и за формите и рутинга. Едно пояснение в лекцията според мен ще е от полза на всички

Тагове:
0
Symfony
RoYaL avatar RoYaL Trainer 6845 Точки

Symfony (Laravel, Spring, ASP.NET, Express.js, Rails,  etc...) не са frontend frameworks (каквито са Angular, React, Vue, etc...), така че ако изключим backend частта, то на практика няма да ти е полезен въобще за SPA, а по-скоро ще ти пречи.

По-скоро ще ти е полезен да направиш API-то, което ще консумира клиента.

P.S.: Концептуално грешно е, че липсва routing при SPA приложенията. Такъв трябва да има, но е клиентски отново. Ако няма, губиш възможността човек да може да навигира напред/назад по страницата и да изпраща URL-и на приятели до определен ресурс

2
mx_starter avatar mx_starter 2 Точки

Разбирам, вкл. и частта в P.S.

В такъв случай, може би ще е полезно да се демонстрира как да ползваме САМО ЧАСТ от бъндълите на Symfony в подобни приложения - доколкото разбрах това е възможно. Но чисто технически - би било полезно да се покаже как става, особено пък ако трябва symfony да се интегрира в готов проект. Например - представете си че имаме готово работещо приложение, при което комуникацията с базата данни и обработката на обектите в бекенда е направена по старомоден начин и искаме да се възползваме от Doctrine/Entity благините на Symfony за да сме в крак с времето.

Откъде въобще да започнем, инсталация, файлова структура? :)

0
RoYaL avatar RoYaL Trainer 6845 Точки

Компонентите са библиотеки, които се намират в повечето инструменти за разрешаване на зависимости, като 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)).

0
01/06/2017 11:51:12
mx_starter avatar mx_starter 2 Точки

ОК, ако примерно имам готово написано приложение - но то няма нищо общо с файловата структура на едно Symfony приложение, какво ще се случи при инсталация с Composer на Symfony компонент, Routing-а например? Ще се създадат ли папки от рода на app, vendor и т.н. - и няма ли да се намажат с евентуално съществуващите такива?

0