Saya yakin pertanyaan ini berlaku untuk jenis objek kompleks lainnya, tetapi EntityDrupalWrapper
apakah yang saat ini saya kerjakan. Ini adalah jenis objek yang dikembalikan oleh entity_metadata_wrapper()
(dan mungkin yang lain).
Saat menggunakan kode seperti berikut:
$order_wrapper = entity_metadata_wrapper('commerce_order', $order_object);
dpm($order_wrapper);
output dari Devel tidak terlalu membantu:
Itu tidak menunjukkan apa yang Anda harapkan untuk panggilan dpm()
dengan, misalnya, stdClass
objek.
Panggilan serupa untuk dvm()
mencetak objek, tetapi dengan cara yang saya tidak kenal, dan itu tidak terlalu mudah dibaca.
Saya sudah mencoba debug()
dan menghasilkan pemberitahuan pengguna PHP yang terlihat seperti ini:
Secara tidak sengaja keluaran HTML yang terkandung dalam peringatan itu adalah keluaran yang sama yang dvm()
dicetak ke layar.
Bagaimana saya bisa memeriksa objek jenis ini (lebih disukai dengan Krumo), jadi saya bisa melihat properti apa yang tersedia? Atau saya terjebak menggunakan dvm()
?
__get()
dan__set()
terlibat. Karena minat, apakah Anda memiliki cara yang disukai untuk mencari tahu properti kelas apa yang tersedia untuk pembungkus apa? Atau itu hanya masalah 'mengetahui' berdasarkan pengalaman?dpm($wrapper->getPropertyInfo());
, itu benar-benar membantu halJawaban:
Gunakan dpm ($ wrapper-> getPropertyInfo ());
Ada dalam dokumen .
sumber
kpr($wrapper->my_custom_field->value());
Saya telah bermain dengan benda-benda EntityDrupalWrapper. debug () biasanya mengembalikan output yang mungkin telah disiapkan oleh __toString ()
Saya mengulangi objek EntityDrupalWrapper menggunakan foreach dan membantu untuk membuat daftar nama properti.
Ini
$obj
adalah objek bertipeEntityValueWrapper
$ obj dapat dibaca oleh $ obj-> value () dan dapat ditulis oleh $ obj-> set ('value');
EDIT:
Jika Anda telah membuat pembungkus Anda tanpa melewati param kedua
yaitu entity_metadata_wrapper ('commerce_order');
kemudian atur dan nilai metode akan membuang pengecualian karena tidak diterapkan.
sumber
Saya akhirnya menulis widget kecil saya sendiri untuk membuka gulungan bungkusnya:
Semoga seseorang menemukan itu berguna.
sumber
The Periksa modul memberikan pandangan struktural bagus dari data yang ingin Anda debug.
sumber
Jika Anda ingin memeriksa objek asli yang "menyalakan" pembungkus, coba:
Ini bekerja dengan baik untuk saya.
sumber
Ada tambalan devel yang memungkinkan Krumo untuk menunjukkan semua properti pribadi dan yang dilindungi.
Ini adalah utas di drupal.org
Saya menemukan patch ini sangat membantu.
sumber
Gunakan cli drupal
sumber