Autor Zpráva
WanTo
Profil
Ve funkci f() bych potřeboval zjistit, v jakém souboru a na jakém řádku byla tato funkce volána. Nějaké ty konstanty na to sice existují, jenže ty pak vždy ukáží na funkci f().

Nemáte někdo nějaký nápad? Díky.
Leo
Profil
Boze k cemu to? Leo
WanTo
Profil
V PHP4 jsem se rozhodl napodobit abstraktní metody. Mám pomocnou funkci e_ab(), která vytiskne, že byla volána abstraktní metoda, a ukončí skript. Potřebuji, aby tato pomocná funkce e_ab() zjistila, odkud byla abstraktní metoda volána.

Příklad:

class Neco {
function abstraktni() {
e_ab("Neco::abstraktni"); //tato metoda je abstraktní a nebyla překrytá
}
}

Ve funkci e_ab potřebuji zjistit, odkud jsem volal Neco::abstraktni().
Leo
Profil
OOP neumim, ale urcite na to neco existuje, bez potreby cisel radku apod. Co budete delat, pokud pripisete kus kodu a radky se zmeni? Leo
medden
Profil *
debug_backtrace(), ale ak sa ozaj snažíš zabrániť volaniu abstraktných metód, tak ideš na to dosť blbo. To radšej použiť trigger_error alebo si to dať do komentára, že toto je abstraktné, a držať potom vývojárov na uzde, ale to sme ti tu už tuším hovorili. Alebo použiť PHP5 :-)
medden
Profil *
Ale debug_backtrace() len od 4.3.0
WanTo
Profil
medden
Teďka tam mám trigger_error. Každopádně se tam snažím nějak propašovat to číslo řádku :-)
medden
Profil *
A to ti tam nestačí?? :-) Nerozumiem čo tam chceš dať s tými riadkami.
WanTo
Profil
Jde mi o to, abych měl ve výstupu číslo řádku, kde byla abstraktní metoda volána. Teďka mám v popisu chyby číslo řádku, kde byla vyvolána trigger_error(), tedy funkci e_ab().
medden
Profil *
Jaj, jasne. Tak to tam prihoď do toho trigger error celý debug_print_backtrace() zachytený cez ob funkcie. Inak to je celkom dobrá vec, tieto backtracy, keď potrebuješ viac informácií o tej chybe...
prochazka.zde.cz
Profil *
neco podobneho jsem delal ve visual basicu. A to tak ze jsem si udelal strukturu kde jsem mel promenou number pro pripadnou navatovou hodnotu, promenou string pro pripadnou navratovou funkci a strukturu error kde byl string popis chyby, cislo chyby, toto byly systemov hlasky, ktere jsem potlacil na zacatku pomoci on goto error a jeste jsem po kazdem skoceni do nejake funkce ulozil jeji nazev. A kdy se me z nejakeho duvodu vyrobila chybenka, tak jsem vedel vse potrebne. Mam takove tuseni ze se da v php taky presmerovat vektor pro obslouzeni pripadne chybenky. Ale s tim cislem radku na to zapomente. php neni assembler ...
Toto téma je uzamčeno. Odpověď nelze zaslat.

0