![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Chcę stworzyć własną funkcję, dzięki której będę miał większą kontrolę nad przebiegiem doczepiania plików. Problem pojawia się jednak w momencie, gdy pliku brak, bo info o nieistniejącym pliku dotyczy miejsca gdzie znajduje się funkcja (plik w którym definiuję funkcję, linia z include()), a chciałbym wiedzieć raczej o miejscu gdzie ta funkcja została wywołana (plik wywołujący, linia z includeX()). Z tego co wiem - można od biedy przekazywać parametr __FILE__, __LINE__ etc, podczas wywoływania funkcji, ale nie chodzi przecież o to by wypisywać długie linie kodu, tam gdzie właściwie chodzi tylko o jeden parametr - ścieżkę do pliku jaki chcę dołączyć. Czy jest więc możliwe pobranie informacji o wywołującym w jakiś przystępny sposób ? |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
albo zwykły komunikat brak pliku $plik, albo zabawa z try{}
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zwykły komunikat niestety nie wystarczy - sporo powiązań klasowych, chcę wiedzieć szybko dokładnie która klasa > metoda i zbadać dlaczego coś jest nie tak. Co do obsługi Exceptions - ok, ale jak ?
Próbowałem już bez throw, niestety nadal pojawiał się komunikat, którego nie chcę i nie kierowało mnie do bloku catch, a nawet jak się udało mniej więcej tak j.w. to jak pobrać dane dot. pliku nadrzędnego, który wywołał funkcję ? |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
http://php.net/debug_backtrace
Jeżeli nie ma byc komunikatu o bledzie wystarczy ze dasz przed funkcja @
Dodatkoo mozesz uzyc http://php.net/file_exists |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 5 Dołączył: 29.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź, czy plik istnieje, jak nie to wyrzuć wyjątek.
Funkcja wywołująca niech używa tej Twojej w ramach try i tak aż do samego szczytu drzewa wywołań. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
@ - wolę używać w includeX - jeden wpis do wszystkich includów za jednym zamachem.
try-catch w funkcjach wywołujących to zawsze coś, ale daje więcej linii kodu zamiast jednego słowa + drugie w nawiasie. Hmm.. .będzie trzeba się na coś zdecydować. thx za odp. |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat try-catch w funkcjach wywołujących to zawsze coś, ale daje więcej linii kodu zamiast jednego słowa + drugie w nawiasie. Ale to normalna struktura kontrolna. ;] Przecież możesz np. wypluwać wyjątek z funkcji:
I tu var_dump" title="Zobacz w manualu PHP" target="_manual się nie wykona. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Znalazłem ; )
Jak by ktoś szukał rozwiązania podobnego typu - brzmi: debug_backtrace(); (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.09.2025 - 17:07 |