Debug

Neben den üblichen Methoden ( Mage::Log($message); und dem Schreiben in individuelle LogFiles Mage::Log($message, null ‘LogFile’); ) ist es manchmal sehr hilfreich den Call-Stack zu sehen.

Dazu erstellen Sie zuerst eine individuelle Helper Funktion:

class Digitalvertraut_Stack_Helper_Callstack extends Mage_Core_Helper_Abstract
{
    private function get_callstack($delim="\n") {
      $dt = debug_backtrace();
      $cs = '';
      foreach ($dt as $t) {
        $cs .= $t['file'] . ' line ' . $t['line'] . ' calls ' . $t['function'] . "()" . $delim;
      }
 
      return $cs;
    }
 
    public function toLog() {
        Mage::log($this->get_callstack(),null,'callstack.log');
    }
}

Dann können sie aus jeder Funktion heraus folgendes aufrufen:

Mage::helper('stack/callstack')->toLog();

und erhalten zum Beispiel solch ein Output:

2011-05-16T09:57:24+00:00 DEBUG (7): ...app/code/local/DigitalVertraut/Stack/Helper/Callstack.php line 34 calls get_callstack()
...app/app/code/local/DigitalVertraut/Competitions/controllers/CustomerController.php line 27 calls toLog()
...app/app/code/core/Mage/Core/Controller/Varien/Action.php line 376 calls balanceAction()
...app/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php line 248 calls dispatch()
...app/app/code/core/Mage/Core/Controller/Varien/Front.php line 158 calls match()
...app/app/Mage.php line 459 calls dispatch()
...app/index.php line 65 calls run()

Diese Seite Drucken