views:

1223

answers:

5

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.

+2  A: 

I use a combination of var_dump with xDebug and Magneto'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)

Alan Storm
Do you MAMP or other "all-in-one" AMP stack? I use MAMP, but will switch if it's easier to setup xDebug.
spdaly
I had the impression xDebug didn't get along with Zend Framework...
Manos Dilaverakis
The Zend Framework is just a PHP Library, xDebug plays fine with it (you might be thinking of the Zend Platform)
Alan Storm
+1  A: 

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)

Greg
+3  A: 

How about using FirePHP?

http://ajzele.net/utilize-firebug-and-firephp-to-speed-up-magento-development

It made my life a hell of a lot easier.

Manos Dilaverakis
I'm giving this the "Answer Flag" because of the effort/reward of getting Firephp up and running. I am going to deep dive the xDebug environment a try when I get some time.
spdaly
A: 

$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
aland