Это является раздражающим, но если Вы готовы добавить другой уровень перенаправления, можно часто делать следующее для снижения в от указателя к указателю:
char c = 'c';
char *p = &c;
char **a = &p;
const char *bi = *a;
const char * const * b = &bi;
Это имеет немного отличающееся значение, но это обычно осуществимо, и это не использует бросок.
Как насчет использования FirePHP?
http://ajzele.net/utilize-firebug-and-firephp-to-speed-up-magento-development
Это сделало мою жизнь чертовски проще.
Я использую комбинацию var_dump
с методом xDebug и Magento Mage :: Log . Mage :: Log особенно хорош, так как он будет выполнять автоматическое расширение и красивую печать объектов, если вы их передадите (я не уверен, что это логгер или просто реализация Magento __toString).
Если я Я нахожусь в своем локальном окне разработки. Я использую Console.app, чтобы следить за файлом журнала, иначе это просто
tail -f /path/to/log/file
. В сочетании с некоторыми настраиваемыми модулями, которые я создал для отладки конфигурации и макета, я доволен. (хотя я предпочитаю легкий набор инструментов текстового редактора, а не цепочку инструментов One True IDE, поэтому ваши результаты могут отличаться)
ведение журнала $ object-> getData (), а не самого $ объекта обычно более полезно, и все встроенное в Magento имеет его как метод (все расширяет Varien_Object)
$object->debug() тоже часто бывает полезен, хотя он существует не для всех объектов. Вот мои наиболее часто регистрируемые утверждения:
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