I looked for ideas on setting up a Magento development environment when we first started using it for our site last year. I didn’t find anything that work really well, so I stayed with var_dump’ing using the log files.
Now that Magento has another year under its belt and several hundred more developers I was wondering if anyone has found a better solution for debugging Magento.
We use Eclipse as our development environment. We tried a pre-2.0 release of PDT with the Zend Debugger and didn’t have much luck.
How about using FirePHP?
It made my life a hell of a lot easier.
I use a combination of
var_dump with xDebug and Magento’s Mage::Log method. Mage::Log is particularly nice, as it’ll do some auto-expanding and pretty printing of objects if you pass them in (I’m not sure if that’s the logger, or just Magento’s __toString implementation).
If I’m on my local development box I use Console.app to keep an eye on the log file, otherwise it’s a simple
tail -f /path/to/log/file
That combined with some custom modules I’ve built for debugging the config and layout keep me happy. (although I prefer a light weight text editor toolchain vs. the One True IDE tool chain, so your results may vary)
logging $object->getData() rather than the $object itself is normally more useful, and everything built into Magento has it as a method (everything extends Varien_Object)
$object->debug() is often quite helpful too, although it doesn’t exist on all objects.
Here are my most commonly logged statements:
Mage::log( $object->debug() ) Mage::log( $object->getData() ) Mage::log( get_class($object) ) # name of class Mage::log( get_class_methods($object) ) # methods of class
I also use FirePHP but find this extension easier.
Give it a try to Magneto-Debug: https://github.com/madalinoprea/magneto-debug (only for dev environments).
Video doesn’t contain features added in the latest version: http://www.youtube.com/watch?v=aqvgrmebcu4
– display layout updates from DB
– display blocks’ rendering time
NuSphere is also good debugger for magento here is link