Autor | Zpráva | ||
---|---|---|---|
jiri90 Profil * |
#1 · Zasláno: 5. 1. 2014, 07:12:28
Mám funkci, které potřebuji předat asociativní pole hodnot tak, aby uživatel funkce věděl, jaké klíče v poli předat, aniž by zkoumal definici funkce. Řeší se to na úrovni formálních parametrů? Nebo nějak v dokumentačních komentářích. Jde mi jednoduše o to, aby vývojové prostředí napovídalo - "funkce chce jako parametr pole s těmito názvy klíčů".
|
||
DJ Miky Profil |
#2 · Zasláno: 5. 1. 2014, 10:17:41
Na úrovni syntaxe toho docílit nejde, maximálně lze vnutit, že typ argumentu má být pole (tomu se říká type-hinting). Nelze vnutit, že má být asociativní a že musí obsahovat konkrétní klíče, jinak, než je popsat dokumentačním komentářem. Nicméně nevím o tom, že by existoval standardní způsob, jak zapsat konkrétní klíče tak, aby tomu nějaké vývojové prostředí rozumělo. Ono to někdy totiž zavání špatným návrhem – buď nelogickým spojováním více parametrů do jednoho nebo používáním asociativního pole místo objektu. V objektu je přítomnost konkrétních složek zaručena, případně si můžeš vynutit další omezující podmínky na hodnoty (pomocí konstruktorů a setterů).
|
||
jiri90 Profil * |
#3 · Zasláno: 5. 1. 2014, 12:29:05
DJ Miky:
Přemýšlím totiž nad tím, jak předat z controlleru atributy 'name' formulářů do modelu, kde se tyto 'names' používají pro práci s databází. Ten model přijímá tyto parametry jako asociativní pole a očekává předem dané 'name' (pevně zadrátované v modelu) jedlotlivých prvků formuláře. No a člověk, který tento model používá se musí podívat do definice modelu, aby věděl, jak má následně pojmenovat jednotlivé prvky formuláře. |
||
Časová prodleva: 10 let
|
0