Kam s globálními funkcemi
- netrunner
- Člen | 7
Rád bych pod nette převedl jeden svůj starší projekt, ještě psaný procedurálně. Vcelku asi chápu principy MVP©, DI apod. Už jsem si pod nette i něco napsal. Jen jednu věc nedokážu pořád rozlousknout, a to kam umístit globální funkce, které jsou potřeba v celém projektu, ale nejsou specifické pro konkrétní entity. Například jde o funkci na parsování jména oproti pravidlům. A je pak už jedno, jestli jde o username, jméno položky, jiné položky, cokoliv. Cítím, že je potřeba toto řešit v Presenteru, aby model dostával už správná data. Napadají mě dvě možnosti.
- Všechno nacpat do BasePresenteru a od něj dědit. To mi přijde ale fuj, bude to pak „zaclánět“ i tam, kde to není třeba.
- Vytvořit samostatnou (statickou) Helper třídu a poté psát prostě Helper::mojeFunkce($data). To mi přijde taky malinko fuj, i když ne tak moc, jak dědění.
Kudy z toho?
- David Matějka
- Moderator | 6445
staticke helper/utils tridy jsou ok, jen bych teda nedaval obecnou
„Helper“ tridu, ale treba NameHelper::parseName
.
a pak je druha vec a to, co se ma jeste delat jako staticky helper a co uz jako klasicka sluzba. ale to zalezi vzdy na konkretnim pripade. samozrejme, ze kdyz to vyzaduje nejake zavislosti, tak je sluzba jasna volba. ale i kdyz udelas vse jako sluzbu, tak nic nezkazis :)
- netrunner
- Člen | 7
Díky. Jasně, jsou to hlavně takové ty blbinky, které nepatří nikam a zároveň všude. Tak tedy spíš statické helper třídy, služby jsou sice fajn, ale na takové použití mi přijde, že je s nimi moc psaní :) Stejně, jakmile by to mělo přesáhnout funkčností do služby, pravděpodobně to je blbě navržený helper…
Editoval netrunner (6. 3. 2018 15:57)