![]() |
![]() |
![]()
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 ![]() 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
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
hwao, na phpedii jest opisany obserwator. Może zainteresujesz się ;]
-------------------- |
|
|
![]()
Post
#3
|
|
![]() 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. -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 475 Pomógł: 0 Dołączył: 1.04.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dzięki temu zrozumiałem działanie __set(), __get() i __call() - hwao dzięki
![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
hmm.. nie jestem pewien ale chyba w repozytorium PEAR'a maja cos podobnego.. chodzi o monitorowanie obiektu, a nie sposob jaki zostal podany wyzej
|
|
|
![]()
Post
#6
|
|
![]() Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz ![]() |
Cytat(LBO @ 2006-03-05 00:45:02) hmm.. nie jestem pewien ale chyba w repozytorium PEAR'a maja cos podobnego.. chodzi o monitorowanie obiektu, a nie sposob jaki zostal podany wyzej Co rozumiesz przez monitorowanie obiektu, dla mnie jest to zobaczenie jak obiekt oddzialowywuje ze srodowiskiem jakie go otacza. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 0 Dołączył: 23.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ale po co to robic? Ma to jakis cel?
![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
"Ma to jakis cel? "
Jeden woli robić var_dumpy, drugi unit testy, a trzeci skorzysta z metody hwao. Nic nigdy się nie zmarnuje. -------------------- |
|
|
![]()
Post
#9
|
|
![]() Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz ![]() |
Cytat(Vomit @ 2006-03-05 12:01:40) Ale po co to robic? Ma to jakis cel? ![]() Ma, ma, latwo mozna sprawdzic co sie dzieje w obiekcie, przydatne przy szukaniu bledu. Ale glownie pisze to poto zeby pomierzyc czasy wykonywania poszczegolnych metod. Przyklad tez pokazuje jak uzywac w php5 magicznych metod, dzieki czemu mozna napisac np DBObject, moge pokazac kod jak ktos chce. |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
"pomierzyc czasy wykonywania poszczegolnych metod"
Zend Studio Client/Server + Debug ? I nie ma mocnych ;] -------------------- |
|
|
![]()
Post
#11
|
|
![]() Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz ![]() |
Cytat(Vengeance @ 2006-03-05 14:50:34) "pomierzyc czasy wykonywania poszczegolnych metod" Zend Studio Client/Server + Debug ? I nie ma mocnych ;] i nie dziala, przynajmniej mi... pozatym koszty;) |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 06:07 |