PHPでもっと有益なVar_dumpの代替?


Answers

Xdebugの拡張機能で提供されているvar_dump関数が好きです: WindowsとLinuxの両方で簡単に拡張機能をインストールして、 var_dumpがより良い出力を得ます:

  • より良いフォーメーション
    • HTML
  • どのくらいの情報を表示するかを調整するオプションがあります

そして、簡単なスクリーンショット:


そして、もちろん、Xdebugは、リモートデバッグ(例えば、Eclipse PDTのPHPアプリケーションのグラフィカルなデバッグ) 、プロファイリングなどの他の有用なものをもたらします。

Question

まともなPHPプログラマは、 print_rまたはvar_dumpラッパーを使用しています。ショートカットキーを愛用し、割り当てることができます。




ここでは私がインラインで使用する非常に便利なものです:

$pretty = function($v='',$c="&nbsp;&nbsp;&nbsp;&nbsp;",$in=-1,$k=null)use(&$pretty){$r='';if(in_array(gettype($v),array('object','array'))){$r.=($in!=-1?str_repeat($c,$in):'').(is_null($k)?'':"$k: ").'<br>';foreach($v as $sk=>$vl){$r.=$pretty($vl,$c,$in+1,$sk).'<br>';}}else{$r.=($in!=-1?str_repeat($c,$in):'').(is_null($k)?'':"$k: ").(is_null($v)?'&lt;NULL&gt;':"<strong>$v</strong>");}return$r;};

echo $pretty($some_variable);






私はFirephp plus Firephpを愛する

  • それはヘッダーを使ってログ情報を書き出すので、AJAXを壊さない。
  • ログに記録する変数/オブジェクトをグラフィカルに表示します
  • 各ログステートメントが発生するファイル名と行番号を表示できます
  • 手続き型APIまたはオブジェクト指向APIを使用して、プロジェクトで使いやすい






ここは私です:

public function varToHtml($var='', $key='') {
     $type = gettype($var);
      $result = '';

      if (in_array($type, array('object','array'))) {
        $result .= '
          <table class="debug-table">
            <tr>
              <td class="debug-key-cell"><b>'.$key.'</b><br/>Type: '.$type.'<br/>Length: '.count($var).'</td>
              <td class="debug-value-cell">';

        foreach ($var as $akey => $val) {
          $result .= sbwDebug::varToHtml($val, $akey);
        }
        $result .= '</td></tr></table>';
      } else {
        $result .= '<div class="debug-item"><span class="debug-label">'.$key.' ('.$type.'): </span><span class="debug-value">'.$var.'</span></div>';
      }

      return $result;
    }

スタイル付き:

table.debug-table {
  padding: 0;
  margin: 0;
  font-family: arial,tahoma,helvetica,sans-serif;
  font-size: 11px;
}

td.debug-key-cell {
  vertical-align: top;
  padding: 3px;
  border: 1px solid #AAAAAA;
}

td.debug-value-cell {
  vertical-align: top;
  padding: 3px;
  border: 1px solid #AAAAAA;
}

div.debug-item {
  border-bottom: 1px dotted #AAAAAA;
}

span.debug-label {
  font-weight: bold;
}






PHP Array Beautifierこの単純なツールは、print_r()のようなPHPの配列やオブジェクトの出力を取り込み、色分けしてデータを簡単に読み込みます。 http://phillihp.com/toolz/php-array-beautifier/







私の好みはhttps://github.com/hazardland/debug.phpからのデバッグであり 、これはデバッグとして指定された単一の関数だけを含むライブラリです(あなたのプロジェクトやライブラリにその関数をコピーすることができます) 。 典型的なdebug() htmlの出力は次のようになります。

しかし、同じような機能を持つ平易なテキストとしてデータを出力することもできます(必要に応じてファイルに記録することもできます)。

string : "Test string"
boolean : true
integer : 17
float : 9.99
array (array)
    bob : "alice"
    1 : 5
    2 : 1.4
object (test2)
    another (test3)
        string1 : "3d level"
        string2 : "123"
        complicated (test4)
            enough : "Level 4"



私は一番簡単なコード(非常にきれいではない)は誰も言及していないことに驚いています。 読み込み可能な出力(色や字下げなし)を得たいだけの場合は、次のように、単純な<pre> var_dump動作します:

echo "<pre>";
var_dump($myvariable);
echo "</pre>";

これよりはるかに低いオーバーヘッドを得ることはできません!






Links