Claudiu Persoiu

Blog-ul lui Claudiu Persoiu


Magento native stack trace

with 5 comments

Exista momente cand ai nevoie sa vezi stack trace-ul, sa stii cum ai ajuns pana la un anumit punct. PHP are doua functii native pentru a realiza acest lucru: debug_backtrace() si debug_print_backtrace. Prima intoarce un array iar a doua afisaza stacktrace-ul pe ecran.

Problema in sine este ca acestea trebuie customizate pentru Magento, pentru ca este foarte posibil cand rulezi debug_backtrace() sa ramai fara memorie inainte sa poti trimite rezultatul catre un fisier de log.

Magento are o functie nativa pentru acest lucru: Varien_Debug::backtrace([bool $return = false], [bool $html = true], [bool $withArgs = true]). Pentru a trimite catre log stacktrace-ul se apeleaza pur si siplu:

Mage::log(Varien_Debug::backtrace(true, false));

Aceasta tehnica este foarte utila in momentul in care vrei sa vezi de unde se initializeaza anumite obiecte si ce metode se ruleaza pana in acel moment.

Written by Claudiu Persoiu

25 February 2012 at 11:48 AM

Posted in Magento,PHP

Tagged with , , ,

5 Responses to 'Magento native stack trace'

Subscribe to comments with RSS or TrackBack to 'Magento native stack trace'.

  1. Salut,

    Iti citesc cu mare interes post-urile si chiar daca nu te cunosc personal te apreciez pentru cunostintele pe care le ai in domeniu; dar e pacat sa dai cu bata-n limba romana, mai ales ca gramatica este cu mult mai usoara decat tehnologiile cu care lucram zilnic.

    http://dexonline.ro/articol/Ghid_de_exprimare_corect%C4%83 “Numai tu știi ce s-a întâmplat.”
    Sunt sigur ca a fost doar o mica scapare 🙂

    Tinand cont ca este o critica constructiva sunt sigur ca nu te va deranja.

    Numai bine,

    ps

    25 February 2012 at 2:35 PM

  2. Salut,

    Multumesc pentru critica constructiva. Mi-a scapat si am observat doar dupa ce l-am publicat. 🙂

    Multumesc,
    Claudiu

    admin

    26 February 2012 at 1:29 PM

  3. La tine nu e trunchiat outputul de la ::backtrace ? La mine e, si nu-mi place.

    roro

    22 March 2012 at 1:11 PM

  4. Cred ca tine mai mult de ce ai nevoie, pe mine nu m-a deranjat pana acum.

    admin

    22 March 2012 at 2:45 PM

  5. Truncherea este necesara pentru ca parametrii uneori sunt foarte mari. Pentru a modifica marimea string-ului trunchiat poti apela inainte de linia in discutie:

    Varien_Debug::$argLength = $marimeaDorita;

    Claudiu Persoiu

    23 May 2014 at 6:04 PM

Leave a Reply