Symfony form a react rubrika: Programování: PHP

4 MiB
položil/-a 30.1.2020

Zdravím, potrebujem poradiť od skúsenejších

mám aplikáciu v symfony - šablóny štandardne twig a javascript riešený cez jQuery. Aplikáciu by som potreboval rozšíriť o ďalšiu funkčnosť. V tejto súvislosti potrebujem dorobiť ďalšie formuláre, v ktorých na určitých miestach používam javascript. Pokračovanie v doterajšom modely práce - twig + jquery sa mi zdá príliš ťažkopádne - definícia formulárových komponentov v symfony a twigu + funkčnosť dodefinovaná cez jquery.
Komponenty, ktoré idem doriešiť v tejto iterácii vývoja sa mi zdajú ešte komplexnejšie ako doteraz a preto by som celé chcel riešiť v javascripte. Na to sa mi už jQuery zdá príliš ťažkopádna.
Preto som hľadal alernatívy a moja voľba zatiaľ padla na ReactJS.
Teraz riešim ako využiť výhody symfony formulárov s ich vykresľovaním na frontende. Zatiaľ som našiel niekoľko variant

  1. v Symfony si vytvorím FormType pre daný formulár, v ReactJS vytvorím komponent pre daný formulár. Potom sa formulár otvorí z React komponenty a pri submite sa odošle na spracovanie, ktoré využije vytvorený FormType - odskúšané, funguje ale prácne a náchylné na chyby.
  2. využijem nástroj na vyexportovanie vlastnosti príslušného FormType do reactu, ktorý z nich vytvorí formulár. A ten štandardne v symfony spracujem - neodskúšané.
  3. vytvorím si vlastné šablóny pre jednotlivé časti formuláru v twigu, tak aby odpovedali reactovým komponentom a toto pošlem do frontendu, ktorý to vykreslí - neodskúšané, ale už na pohľad veľmi prácne.

Využili ste niečo podobne? Alebo mi odporúčate ísť úplne inou cestou?

Ď.

odkaz
1 bretislav.hrebacka
odpověděl/-a 17.4. 12:13

Pokud chceš použít React na frontu, udělal bych formulář celý jako react component a posílal zpracování přes REST. Míchat vše dohromady s formuláři symfony se mě nezdá být dobrý nápad. Připojení React přes Webpack https://symfony.com/doc/current/frontend/encore/reactjs.html

Komentáře

  • Andy : Řeším to stejně. Teda na Nette. Nikdy mi nevonelo jak jsou dělané formy v Nette. Nové formy jsou ve Vue, posílá se to na api a je to svázané přes JWT. 24.8. 19:32
  • Taco : @Andy: Jaké jsou tvé výhrady vůči Nette Forms? 24.8. 20:36
  • Andy : Hlavní, že když chceš form v modálním okně a form meni stav samotného modalu, tak je to problém pokud je to zajaxovane. Další, že stejně nepoužívám JS validaci, protože častokrát potřebují validovat vůči databazi, takže form validace jsou mimo. Měnit chováni a vzhled přes renderery mi přijde zbytečně ukecane a složité(a stejně tam musíš dotlačit nějaký JS pokud chceš funcy veci). Přes Vue a api je vše mnohem jednodušší. A další, já se řídím heslem "nejlepší form, žádný form" (rozumnej žádné x-www-form-urlencoded) Plus tím, že je to na JS a přes JWT, tak mas klid od botu a není potřeba řešit recaptchu. Zkoušel jsem i měnit chováni JS validaci, aby to nebyly ty defaultni alerty. Ale prostě pouzivat Nette formy v dnešní dobe, aby to splňovalo současné požadavky, tak je s tím takovýho srani, na to tolika místech, že to přoste nedává smysl pouzivat. 24.8. 22:07
  • Taco : @Andy: Takže nejde ani tak o Nette Forms, jako o Html formuláře staré školy. Chápu tě správně? 24.8. 22:58

Pro zobrazení všech 2 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.