How to Neatly Dump Variables in Drupal for Debugging
เวลาพัฒนาโมดูล / ธีมใน Drupal สิ่งหนึ่งที่มักจะต้องทำบ่อยๆ คือการ dump ค่าตัวแปรใน Drupal ออกมาดู วิธีที่ง่ายที่สุดคือใช้คำสั่ง <a href="http://www.php.net/print_r"><span class="kw3">print_r</span></a><span class="br0">(</span><span class="sy0"><</span>variable<span class="sy0">></span><span class="br0">)</span> แต่ผลลัพธ์ที่ได้ส่วนใหญ่จะเป็น string เละๆ อยู่ในส่วนบนสุดของหน้านั้นๆ ทำให้อ่านลำบากอย่างแรง
เห็น @sugree แนะนำบ่อยๆ ว่าให้ใช้ drupal_set_message<span class="br0">(</span><span class="br0">)</span> เวลา dump ค่าตัวแปร ลองดูแล้วปรากฏว่ามันใช้ไม่ได้กับ print_r() เนื่องจาก print_r() จะพรินท์ค่าออกมาทันที ไม่ได้ return ค่าเป็น string กลับมาให้ drupal_set_message()
วิธีแก้คือใช้ output buffering ช่วยอีกที สมมติว่าต้องการ dump ค่าในตัวแปร <span class="re0">$vars</span><span class="br0">[</span><span class="st_h">'node'</span><span class="br0">]</span> ก็เขียนโค้ดแบบนี้
<?php ob_start(); print_r($vars['node']); drupal_set_message(ob_get_contents()); ob_end_clean(); ?>
จะได้โครงสร้างของตัวแปร $vars['node'] อยู่ในกล่องข้อความของ Drupal อย่างเป็นระเบียบเรียบร้อย อ่านง่ายกว่าเดิมเยอะ :)
- อ่าน 755 ครั้ง
- Feed: Suksit
- Original article

ความคิดเห็นล่าสุด
11 hours 52 min ก่อน
10 hours 15 min ก่อน
1 วัน 7 hours ก่อน
1 วัน 7 hours ก่อน
1 วัน 11 hours ก่อน
1 วัน 11 hours ก่อน
1 วัน 12 hours ก่อน
1 วัน 13 hours ก่อน
3 days 8 hours ก่อน
4 days 8 hours ก่อน