Igazából nem szeretem túlzottan, de igyekszem a viszonyt kellemesen tartani :)

Van a webprogramozásnak - és felteszem más fajtának is - egy olyan része, ami egy kikerülhetetlen eszköz: ezek az űrlapok, angol néven form-ok. A felületen való kialakításuk arányaiban nagyon sok kódot igényel, aminek a 95%a elég durva favágó munka. Elemek, címkék, befoglalók összerakása, az elemek tartalmának ellenőrzésének és validálásnak megvalósítása. Ezek egy részét meg lehet spórolni, de nem ajánlott kihagyni, főleg a validálást, mert nagyon durva problémákat okozhat. A szimpla programhibától elérhetünk egy csinos SQLinjektion-ig is, de ez másik téma.

Éppen ezért, pontosabban a favágós része miatt, nekem nagyon tetszik, hogy a Zend 1 és 2 rendszerében létezik a form, mint objektum - a Zend 3at még nem néztem meg. Ha ez kéznél van, az elemek és a kapcsolódó dolgok feltöltésén kívül, nem kell foglalkozni azzal, hogy a végső html formában belenyúlj, esetleg egy 8-10+ elemű formba. Ha mindezt még a mai megvalósításnak megfelelően elemenként külön befoglalókkal és a reszponzivitást lehetővé tevő class-okkal csináljuk, akkor már elég masszív mennyiségű lesz az a bükkfa, amit fel kell vágnunk.

És miért csináljuk ezt kézzel, ami egyrészt időigényes, másrészt magában rejti a hiba lehetőségét, ha lehet rá egy megfelelő objektumot is használni. A render-elést megoldani egy sorban, a validálást és a többi dolgot szintén, a fejlesztő pedig azzal töltse az idejét, amivel tényleg értéket tud létrehozni a munkaidőből.

Ez az a komponens, ami nekem nagyon hiányzik az új - 5.x - Laravel verziókból. Nem azért, mintha nem szeretnék fát vágni - a szó szerinti értelmezésben sincs vele bajom, de ha tudok építeni - vagy beszerezni megtérülően - egy gépet, vagy kódrészletet esetünkben, akkor miért nem teszem? Mert annyi felesleges időm van rá? Mert becsülöm a kétkezi munkát, hogy legépeljek pár tucat űrlapot? Lehetséges. De ha a projekt idejéből tudok spórolni pár órát olyan dolgokra, amit valóban igénylik, miért ne tenném? Mindig van olyan részlet, amit lehet még jobban megoldani.

Szerk.: Nem sokkal ezután futottam egy kört, hátha javult a helyzet azóta. És igen: laravel-form-builder - úgy látszik, tényleg nem csak engem foglalkoztat a téma. :)