Я уверен, что этот вопрос относится к другим типам сложного объекта, но EntityDrupalWrapper
тот, с которым я в настоящее время работаю. Это - тип объекта, возвращенного entity_metadata_wrapper()
(и вероятно другие).
При использовании кода как следующее:
$order_wrapper = entity_metadata_wrapper('commerce_order', $order_object);
dpm($order_wrapper);
вывод от Devel совершенно не полезен:
Это не показывает то, к чему Вы ожидали бы видеть вызов dpm()
с, например, a stdClass
объект.
Подобный вызов к dvm()
действительно печатает объект, но способом я не знаком с, и это не очень читаемо.
Я попробовал debug()
и это производит пользовательское уведомление PHP, которое выглядит примерно так:
Случайно вывод HTML, содержавшийся в том предупреждении, является тем же выводом это dvm()
печать на экран.
Как я могу осмотреть эти типы объектов (предпочтительно с Krumo), таким образом, я вижу, какие свойства доступны? Или застревают я использование dvm()
?
Используйте dpm ($wrapper-> getPropertyInfo ());
Это находится в документах.
Я играл с объектами EntityDrupalWrapper. отладка () обычно возвращает вывод, который, возможно, подготовился __ toString ()
Я выполнил итерации объекта EntityDrupalWrapper, использующего foreach, и он помог перечислить вниз название свойств.
foreach($order_wrapper as $name => $obj){
debug($name);
debug(get_class($obj)); //EntityValueWrapper
}
Здесь $obj
объект типа EntityValueWrapper
$obj может быть считан $obj-> значение () и может быть записью $obj-> набор ('значение');
Править:
Если Вы создали свою обертку, не передавая второй параметрический усилитель
т.е. entity_metadata_wrapper ('commerce_order');
затем набор и методы значения выдадут исключение, поскольку они не реализованы.
Осмотреть модуль обеспечивает хорошее структурное представление данных, которые Вы хотите отладить.
Станьте поучительными, и хорошо отформатировал переменные дампы, глубокие отслеживания стека и профили времени выполнения - к журналу транзакций базы данных (Отчеты / Недавние сообщения журнала), в файл или экранировать.