سؤال

يعرض XDEBUG "var_dump" بطريقته الخاصة مع معلومات أكثر فائدة، ولكن في Firebug غير قابل للقراءة.

كنت أتساءل عما إذا كانت هناك طريقة لعرض var_dump في Firebug لجعلها مقروءة دون تعطيل XDebug وأيضا الحفاظ على عرض VAR_DUMG بواسطة XDebug في PHP.

أمثلة var_dump المعروضة في Firebug:

$test = array('id' => '42', 'name' => 'Mao');
var_dump($test);

تقصير :

array(2) {
  ["id"]=>
  string(2) "42"
  ["name"]=>
  string(3) "Mao"
}

XDebug:

<pre class='xdebug-var-dump' dir='ltr'>
<b>array</b>
  'id' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'42'</font> <i>(length=2)</i>
  'name' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'Mao'</font> <i>(length=3)</i>
</pre>
هل كانت مفيدة؟

المحلول

يمكنك إيقاف تشغيل XDebugvar_dump()التحميل حسب الإعداد xdebug.overload_var_dump ل false. وبعد ثم يمكنك استخدام var_dump() عندما لا تحتاج إلى تنسيق HTML إضافي و xdebug_var_dump() عندما تحتاج إلى إخراج تصحيح منسق بالكامل.

ولكن كما كتبت في تعليقي أعلاه، إذا كنت تستخدم firephp., ، يمكنك ببساطة السماح بتنسيق FIREPHP الإخراج في وحدة التحكم في Firebug:

fb($variable, FirePHP::DUMP) // or
FB::dump('Key', $variable) // or
$firephp->dump('Key', $variable); // where $firephp is your FirePHP instance

نصائح أخرى

مايك بالحل،

ini_set('xdebug.overload_var_dump', 0);

لم تنجح مع تثبيتي.

ولكن يمكنني أن أفعل هذا لكسر HTML:

ini_set( 'html_errors' , 0 );

ضبط xdebug.overload_var_dump="0" في php.ini. حل المشكلة في حالتي.

ini_set('xdebug.overload_var_dump', 0); لا يعمل هنا أيضا. ini_set( 'html_errors' , 0 ); لا يعمل ولكن قد يكون بطيئا للغاية في بعض الأحيان.

كحل بديل بسيط قد تستخدمه:

echo var_export($this);

الذي هو فقط 7 قناة أكثر من var_dump العادي.

يمكنك استخدام بديل:

http://raveren.github.io/kint/

يعمل مع إعداد صفر وله ميزات أكثر بكثير من XDEBUG var_dump على أي حال.

لقطة شاشة:

Kint screenshot

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top