Control::invalidateControls()
- Majkl578
- Moderator | 1364
Navrhuji přidání metody invalidateControls do třídy Control. Řešila by invalidaci několika položek najednou.
Mnou navrhovaná implementace: https://gist.github.com/…27f69607dc6a.
Autorem myšlenky je MelkorNemesis.
Editoval Majkl578 (23. 3. 2010 23:55)
- Honza Marek
- Člen | 1664
Něco takovýho by nebylo špatný mít ve frameworku. Akorát název invalidateControls je docela nešťastný, když to slouží k invalidaci více snippetů v jednom controlu. Takže asi invalidateSnippets. K diskuzi bych dal i založení metody invalidateSnippet, protože invalidateControl($snippet) může být podle mě pro začátečníka matoucí.
Editoval Honza Marek (24. 3. 2010 11:08)
- pekelnik
- Člen | 462
Honza Marek napsal(a):
… název invalidateControls je docela nešťastný, když to slouží k invalidaci více snippetů v jednom controlu. Takže asi invalidateSnippets. K diskuzi bych dal i založení metody invalidateSnippet, protože invalidateControl($snippet) může být podle mě pro začátečníka matoucí.
Domnívám se, že nejenom pro začátečníka. Odkdy je snippet control?
- Majkl578
- Moderator | 1364
pekelnik napsal(a):
Domnívám se, že nejenom pro začátečníka. Odkdy je snippet control?
Souhlasím, také mi to přijde dost WTF.
Jedna otázka do pranice:
Jak se zachová aplikace, kde budu v šabloně mít komponentu „foo“ a
zároveň snippet pojmenovaný „foo“ a použiji
$this->invalidateControl('foo')
?
- Honza Marek
- Člen | 1664
pekelnik napsal(a):
Domnívám se, že nejenom pro začátečníka. Odkdy je snippet control?
Pokročilý si prostě zvykne.
Majkl578 napsal(a):
Jak se zachová aplikace, kde budu v šabloně mít komponentu „foo“ a zároveň snippet pojmenovaný „foo“ a použiji$this->invalidateControl('foo')
?
Tak… invaliduje to snippet, což je samozřejmě v rozporu s tím, jak ten kód vypadá.
- Majkl578
- Moderator | 1364
Upravil jsem ještě ten gist.
Celá současná implementace je podle mě nevhodná. Proč?
– Invalidovat více snippetů metodou invalidateControl()
mi
přijde nelogické – k tomu invalidateControls()
.
– Invalidovat snippet pomocí invalidateControl()
je
podivné – takže invalidateSnippet()
(jak navrhl Honza).
Navrhl bych tedy k diskuzi nové (a asi i zpětně nekompatibilní) rozhraní pro implementaci:
– invalidateControl()
/invalidateSnippet()
(invalidace komponenty respektive snippetu)
– invalidateControls()
/invalidateSnippets()
(invalidace více komponent respektive snippetů)
– isControlInvalid()
/isSnippetInvalid()
(kontrola
validity komponenty respektive snippetu)
– areControlsInvalid()
/areSnippetsInvalid()
(kontrola validity více komponent respektive snippetů)
– validateControl()
/validateSnippet()
(zvalidovat
komponentu respektive snippet)
– validateControls()
/validateSnippets()
(zvalidovat více komponent respektive snippetů)
Co vy na to?
Editoval Majkl578 (25. 3. 2010 22:07)
- Honza Marek
- Člen | 1664
Majkl: Naprosto ten seznam nechápu… proč tam máš vždycky dvě možnosti, když snippet a control je něco úplně jiného?
IMHO metoda invalidateControl, která zneplatní všechny snippety v controlu, je naprosto v pořádku. IsControlInvalid, pokud kontroluje platnost celé komponenty, tak taky. Metody areControlsInvalid()/areSnippetsInvalid() vůbec nerozumim k čemu jsou dobrý.
Jako další námět k diskuzi by se dalo vzít taky slovo invalidate, když je tak divný :-D