Существует ли хороший способ осмотреть объекты, тип которых получен из класса EntityDrupalWrapper?

Я уверен, что этот вопрос относится к другим типам сложного объекта, но EntityDrupalWrapper тот, с которым я в настоящее время работаю. Это - тип объекта, возвращенного entity_metadata_wrapper() (и вероятно другие).

При использовании кода как следующее:

$order_wrapper = entity_metadata_wrapper('commerce_order', $order_object);
dpm($order_wrapper);

вывод от Devel совершенно не полезен:

screenshot

Это не показывает то, к чему Вы ожидали бы видеть вызов dpm() с, например, a stdClass объект.

Подобный вызов к dvm() действительно печатает объект, но способом я не знаком с, и это не очень читаемо.

Я попробовал debug() и это производит пользовательское уведомление PHP, которое выглядит примерно так:

screenshot 2

Случайно вывод HTML, содержавшийся в том предупреждении, является тем же выводом это dvm() печать на экран.

Как я могу осмотреть эти типы объектов (предпочтительно с Krumo), таким образом, я вижу, какие свойства доступны? Или застревают я использование dvm()?

38
07.06.2012, 23:09
3 ответа

Используйте dpm ($wrapper-> getPropertyInfo ());

Это находится в документах.

38
24.01.2020, 22:40

Я играл с объектами 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');
затем набор и методы значения выдадут исключение, поскольку они не реализованы.

4
24.01.2020, 22:40

Осмотреть модуль обеспечивает хорошее структурное представление данных, которые Вы хотите отладить.

Станьте поучительными, и хорошо отформатировал переменные дампы, глубокие отслеживания стека и профили времени выполнения - к журналу транзакций базы данных (Отчеты / Недавние сообщения журнала), в файл или экранировать.

3
24.01.2020, 22:40