Post
#1
|
|
|
Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz |
Ostatnio zastanawiałem się jak można pomierzyć, posprawdzać niektóre fragmenty aplikacji, wpadłem na pomysł zasotosowania metod __call(), __get(), __set() i całośc wyglada tak:
Na razie nic wielkiego, dajmy jakąś klasa do prze testowania np.:
Nie spierajmy sie o sama budowę klasy, to tylko przykład (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Robimy coś takiego:
Wszytko działa, tak jakbyśmy operowali na obiekcie Human, ale tak naprawdę wszystkie operacje wykonywane są na obiekcie Monitor. W praktyce oznacza to że zanim cos trafi do instancji klasy Human zostaje przeanalizowane przez obiekt Monitor. Daje nam to sporo możliwość, rozbudujmy klasę Monitor w taki oto sposób:
Trochę zostało dodane, głównie wyświetlanie informacji co i jak się dzieje sprawdzamy co się stanie po uruchomieniu takiego kodu:
Po wykonaniu skryptu naszym oczom ukaże się co się działo z obiektem Human: Kod Create new instance of object "Human" Human::Born( (string)'Paweł', (string)'Halicki' ); Human::setLiveTime( (integer)100 ); Human::sNick = (string)'hwao' Human::setLiveTime( (integer)50 ); Human::sNick = (string)'jedi hwao' Human::setLiveTime( (integer)0 ); Human::goToHell( ); Human::sNick = (string)'sith hwao' W przykładzie widać tylko wejście ale nic nie stoi na przeszkodzie żeby dodać inne rzeczy, np.: - czas dostępu do metod/właściwości (jak długo co się wykonuje), - co zwraca dane metoda/właściwości. Wszelkie pytania mile widziane, wiem że nie jest to za bardzo zaawansowane, ale komuś może się przydać. Kod jest fragmentem framework'a. Pozdrawiam |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Przyjaciele php.pl Postów: 384 Pomógł: 6 Dołączył: 11.09.2004 Skąd: Grodzisk Mazowiecki Ostrzeżenie: (0%)
|
Bardzo ciekawe zastosowanie magicznych metod.
Mi się to podoba. |
|
|
|
hwao [PHP5] Monitoring obiektu w php 26.02.2006, 13:35:52
bela_666 hwao, na phpedii jest opisany obserwator. Może zai... 27.02.2006, 14:34:49
NetJaro Dzięki temu zrozumiałem działanie __set(), __get()... 4.03.2006, 20:40:11
LBO hmm.. nie jestem pewien ale chyba w repozytorium P... 5.03.2006, 00:45:02
hwao Cytat(LBO @ 2006-03-05 00:45:02)hmm.. nie jes... 5.03.2006, 10:27:37
Vomit Ale po co to robic? Ma to jakis cel? 5.03.2006, 12:01:40
Vengeance "Ma to jakis cel? "
Jeden woli robić va... 5.03.2006, 14:04:42
hwao Cytat(Vomit @ 2006-03-05 12:01:40)Ale po co t... 5.03.2006, 14:20:42
Vengeance "pomierzyc czasy wykonywania poszczegolnych m... 5.03.2006, 14:50:34
hwao Cytat(Vengeance @ 2006-03-05 14:50:34)"p... 5.03.2006, 15:10:47 ![]() ![]() |
|
Aktualny czas: 14.01.2026 - 20:07 |