IUser vs User – setExpiration
- wdolek
- Člen | 331
pro psani PHP pouzivam NetBeans a pri hratkach s platnosti prihlaseni uzivatele jsem si povsiml, ze „setExpiration“ je pouze na objektu User, ale neni v rozhrani IUser – je proto nejaky duvod? (v podstate mi jde o to, ze NetBeans se u getUser( ) ridi @return IUser – a naseptavac mi pak nerika vse, co by User mohl mit)… mozna by se podobnych pripadu naslo vice.
vzhledem k tomu, ze setExpiration je prezentovana v dokumentaci jako „zakladni“ featura, nevidim tedy duvod, proc by nemela byt tato fce zarazena i do rozhrani…
:) a pokud nejaky duvod je, rad se poucim
- Honza Marek
- Člen | 1664
Pokud si vyrobíš vlastní implementaci IUser, tak tam můžeš chtít úplně jiné základní featury než setExpiration. Prostě je to určitá daň za volnost, pokud budeš chtít nějakou část frameworku vyměnit za vlastní řešení.
Ano a je takových případů víc, osobně mě rozčiluje, když mi netbeansy u šablon nenapovídají setFile.
- wdolek
- Člen | 331
Honza M.: ale tak chapu to co rikas – tj aby si to kazdy mohl udelat po svem, pokud si to po svem delat bude. nadruhou stranu je tato featura prezentovana primo v dokumentaci a neprijde mi, ze by se tam psalo o „specialni implementaci User“, ale vse je popsano jako „obycejna“ soucast Nette… v tomto smyslu bych to klidne do IUser nakladl… nemluve o tom, ze to je precejen uzitecna vlastnost/metoda toho objektu.
- Honza Marek
- Člen | 1664
Možná se tam někde píše o třídě User jako o výchozí implementaci rozhranní IUser. Ale tak to je slovíčkaření…
Prostě v těch interfacech jsou jen takové metody, které jsou nutné pro začlenění té třídy do frameworku. Pokud je nějaká metoda užitečná, ale není vyžadována jinými částmi frameworku, tak nemá smysl ji do interfacu dávat. Právě kvůli tomu, že pokud se někdo rozhodne si pořešit uživatele po svém a vytvořit vlastní implementaci rozhranní IUser, tak aby se nemusel obtěžovat s metodami, které stejně nebude potřebovat.
- David Grudl
- Nette Core | 8228
Co kdyby čistě z praktických důvodů byla ve třídě Environment v phpDoc v return uváděna třída místo interface?