![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 9 Dołączył: 12.03.2007 Skąd: kraków/tarnobrzeg/baranów/suchorzów Ostrzeżenie: (0%) ![]() ![]() |
Czy ktoś zna może sposób na przechwycenie wywołania funkcji (np. wbudowanej w php) ?
Zależy mi na tym aby daną funkcję (np. headers) przechwycić i logować jej wszystkie wywołania za pomocą np. debug_backtrace, która by mi udzieliła wszystkich informacji z którego miejsca została wywołana i z jakimi parametrami. Po zapisaniu informacji przekazywanie następowało by do pierwotnej funkcji. Taka informacja mogła by się przydać podczas debugowania skryptu. Wertuje php.net oraz google i zaczynam tracić wiarę że taka możliwość istnieje. Czy ktoś zna może sposób jak można tego dokonać ? Ten post edytował szagi3891 15.06.2007, 23:39:51 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 255 Pomógł: 5 Dołączył: 20.03.2007 Skąd: Kraków Ostrzeżenie: (30%) ![]() ![]() |
moze schakuj php? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
i po co Ci to w ogole? Ten post edytował domis86 15.06.2007, 23:46:52 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 9 Dołączył: 12.03.2007 Skąd: kraków/tarnobrzeg/baranów/suchorzów Ostrzeżenie: (0%) ![]() ![]() |
moze schakuj php? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Wszakże to grzechem jest ... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) i po co Ci to w ogole? Wyobraź sobie że używasz jakiejś standardowej funkcji w wielu miejscach z których wiesz że jedna dostaje nieprawidłowy parametr i nie wiesz która to i chcesz ją namierzyć. A tak piszesz sobie swoją funkcję, lugujesz co trzeba i wywołujesz pierwotną funkcję (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 255 Pomógł: 5 Dołączył: 20.03.2007 Skąd: Kraków Ostrzeżenie: (30%) ![]() ![]() |
moze tak:
zrób sobie klase powiedzmy o nazwie std, ktora zawiera magiczną metodę "__call" i teraz metoda call ma dzialac mniej wiecej tak: 1.dostaje $name i $params 2.loguje sobie nazwe funkcji i parametry i co tam jeszcze chcesz 3.uruchamia funkcje o nazwie $name z paramatrami $params (uzywając np: call_user_func_array) 4. jeszcze moze cos logowac i teraz jak chcesz logowac funkcje header to musisz wszystkie : header(...) zamienic na: $std->header(...) (replace all w edytorze (IMG:http://forum.php.pl/style_emoticons/default/aarambo.gif) ) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 9 Dołączył: 12.03.2007 Skąd: kraków/tarnobrzeg/baranów/suchorzów Ostrzeżenie: (0%) ![]() ![]() |
hehe, wydaje mi się że to samo równie dobrze można by osiągnąć tworząc funkcję header2(...) (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Właśnie tego replace all chciałbym uniknąć (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Chociaż wykorzystanie klasy w ten sposób wydaje się ciekawym pomysłem. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 32 Dołączył: 14.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj tego: http://pecl.php.net/package/intercept. Niestety obecnie jest to jeszcze wersja alpha, i trzeba to sobie samemu skompilować.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 01:17 |