Tenho certeza de que essa pergunta se aplica a outros tipos de objetos complexos, mas EntityDrupalWrapper
é com quem estou trabalhando atualmente. Este é o tipo de objeto retornado por entity_metadata_wrapper()
(e provavelmente outros).
Ao usar código como o seguinte:
$order_wrapper = entity_metadata_wrapper('commerce_order', $order_object);
dpm($order_wrapper);
a saída do Devel não é muito útil:
Não mostra o que você esperaria ver em uma chamada para dpm()
, por exemplo, um stdClass
objeto.
Uma chamada semelhante ao dvm()
imprime o objeto, mas de uma maneira que eu não estou familiarizado e não é muito legível.
Eu tentei debug()
e produz um aviso de usuário PHP que se parece com isso:
Aliás, a saída HTML contida nesse aviso é a mesma saída dvm()
impressa na tela.
Como posso inspecionar esses tipos de objetos (de preferência com o Krumo), para ver quais propriedades estão disponíveis? Ou estou preso usando dvm()
?
__get()
e__set()
estava envolvido. Por interesse, você tem alguma maneira preferida de descobrir quais propriedades de classe estão disponíveis para qual wrapper? Ou é apenas uma questão de 'conhecimento' baseado na experiência?dpm($wrapper->getPropertyInfo());
, ele realmente ajuda as coisasRespostas:
Use dpm ($ wrapper-> getPropertyInfo ());
Está nos documentos .
fonte
kpr($wrapper->my_custom_field->value());
Eu estava brincando com objetos EntityDrupalWrapper. debug () geralmente retorna a saída que pode ter sido preparada por __toString ()
Eu iterava o objeto EntityDrupalWrapper usando o foreach e ajudou a listar o nome das propriedades.
Aqui
$obj
está um objeto do tipoEntityValueWrapper
$ obj pode ser lido por $ obj-> value () e pode ser escrito por $ obj-> set ('value');
EDITAR:
Se você criou seu wrapper sem passar o segundo parâmetro, por exemplo,
entity_metadata_wrapper ('commerce_order');
os métodos set e value gerarão uma exceção, pois não são implementados.
fonte
Acabei escrevendo meu próprio widget para desenrolar o invólucro:
Espero que alguém ache útil.
fonte
O módulo Inspecionar fornece uma boa visão estrutural dos dados que você deseja depurar.
fonte
Se você deseja inspecionar o objeto original que está "alimentando" o wrapper, tente:
Isto funciona bem para mim.
fonte
Existe um patch de desenvolvimento que permite ao Krumo mostrar todas as propriedades privadas e protegidas.
Aqui está o tópico em drupal.org
Achei este patch muito útil.
fonte
Use o drupal cli
fonte