magic __get __set
Ozzie PHP op 02/02/2013 16:02:19:
Wanneer zouden er eigenlijk WEL merkbare verschillen optreden? Vanaf welke factor?
Wat doe je nou?
Ozzie PHP op 02/02/2013 16:06:34:
Wat doe je nou?
Ik probeer duidelijk te maken dat je moeilijk alles in PHP op vlak van performance in vraag kan stellen.
Magic get en set zijn iets, maar dan ook iets trager dan de gewone reguliere getters en setters maar een gemiddelde bezoeker merkt daar niks van.
Hoe snel jouw magic getters en setters zijn, dat hangt er vanaf wat je erin doet. Als jij CPU intensieve dingen gaat doen in gewone getters en setters zal het ook wel traag zijn, hetzelfde met de magic methods.
Dus kortom, keep on programming en maak je geen zorgen. Als iets traag is zul je dat vanzelf wel merken.
Gewijzigd op 02/02/2013 16:09:44 door - Raoul -
De vraag is ook, hoe vaak per pagina-aanroep ga je die magic __get en __set functie gebruiken. Stel je zou alles via magic __get en __set doen, hoe vaak is dat dan voor 1 pagina-aanroep. Een paar honderd altijd wel denk ik... maar zou het meer dan 1.000 zijn, of 10.000???? Daar hangt het natuurlijk ook vanaf.
Ik kan op een gegeven moment beslissen dat ik in mijn container class __get en __set ga gebruiken... maar als je dan consequent zou zijn, moet je het eigenlijk overal gebruiken...
Het zou eigenlijk inconsequent zijn als je dit doet:
Dan zou je eigenlijk ook dit moeten doen:
(In het laatste geval zou avatar dan een public property kunnen zijn.)
Hoe dan ook, als je voor methode1 kiest, zou je eigenlijk overal de get() methode moeten skippen, wil je consequent zijn... maar of dát nou zo'n goed idee is... ?
De factor alleen is dus niet van belang, het gaat er ook om hoelang de operatie om te beginnen duurt en hoe vaak je het aanroept.
Daarom val ik terug op een eerdere opmerking: je kan je vraag alleen beantwoorden als je de gehele context ziet en dat is in je complete framework.
Edit: en dit was het bericht waarop bovenstaande een reactie is:
Ozzie PHP op 02/02/2013 16:02:19:
Wanneer zouden er eigenlijk WEL merkbare verschillen optreden? Vanaf welke factor?
Gewijzigd op 02/02/2013 16:37:19 door Erwin H
Thanks Erwin, daar heb je zeker een goed punt.
Toevoeging op 02/02/2013 18:04:16:
Merk overigens op dat PHPbench het script al automatisch in een loop gooit. (standaard is dit 1000 keer, dit kun je aanpassen)
hierboven wat betreft consistentie? Als je in 1 class de magic methods gebruikt, zou je het dan niet overal moeten gebruiken om je code consistent te houden?
Ah oke... vond het al vreemd. Wat vind je van mijn verhaal Ja, ik ben erg voorstander van consistentie en dus als je het ergens doet overal doen.
oké!