2016-09-17 6 views
0

Slimを使用するのは楽しいですが、デバッグの方法には不満があります。私は次のルーティングがあると言います。私はcURLリクエストを行い、出力を見ることができますが、代わりに私のIDEデバッガで行ごとにスクリプトを調べ、NuShereのphpEDにしたいと思っています。私はすぐには分かっていませんが、私はphpEDにPOST要求を行うことはできますが、PUTまたはDELETE要求ではないことを確信しています。デバッグするためにスリムパラメータを設定する

これを行う方法はありますか? $_SERVER['REQUEST_URI']$_SERVER['REQUEST_METHOD']を任意の値に簡単に強制することができますし、$_GETスーパーグローバルを変更することもできますが、ボディデータ(つまり$_POST)はそれほど単純ではありません。

+0

多くの場合、このようなフレームワークで動詞を偽装するための隠れた入力値があります。 ''または 'name = '_ method''のようなものが一般的に好きなのですか? – Blake

+0

@Blakeそれがあれば大丈夫でしょう。 – user1032531

+0

これを読んだことがありますか:http://docs.slimframework.com/routing/put/ - 動詞を変更するために必要な隠された入力を参照してください – Blake

答えて

0

Blakeのコメントに基づいて、私は次のメソッドを作成し、それをコンストラクタで呼び出します。各要求の後、デバッグ可能な新しいテストファイルが作成されます。

private function createTest($params,$method) 
    { 
     $inputs=print_r($params,1); 
     $method=strtolower($method); 
     $method2=($method=='put' || $method=='delete')?'post':$method; 
     $html=$this->createTestInputs($params,null,null); //array, previous inputs, name prefix 
     $html=<<<eod 
<p>URL: $_SERVER[REQUEST_URI]</p> 
<p>METHOD: $method</p> 
<p>INPUTS:<pre>$inputs</pre></p> 
<form action="$_SERVER[REQUEST_URI]" method="$method2"> 
    $html 
    <input type="hidden" name="_METHOD" value="$method"/> 
    <input type="submit" value="Test"/> 
</form> 
eod; 
     file_put_contents($_SERVER['DOCUMENT_ROOT'].'/test.php', $html); 
    }  

    private function createTestInputs($params,$html,$prefix) 
    { 
     foreach($params as $name=>$value) { 
      if(is_array($value)) { 
       $html=$this->createTestInputs($value,$html,$name); 
      } 
      else { 
       $html.="<input name='".($prefix?$prefix.'['.$name.']':$name)."' type='hidden' value='$value' />\n"; 
      } 
     } 
     return $html; 
    }  
0

あなたは例外の場合のデバッグ情報が必要な場合:

$app->config('debug', true); 

ここで説明したようにあなたがFirebugの+ FirePHPを使用することができます。https://www.sitepoint.com/debug-php-firebug-firephp/


トレイシー
が、私はインターフェイスが好きデバッグのため私はこのようなものを見つけました:https://github.com/nette/tracy

チェックアウトこの要旨:https://gist.github.com/1f7/b2d2846777e71f48e43a2ef7acc0a655(これは、例の中の小さなバグがありますが、あなたはそれを扱うことができます)

デモはここにある:私のテスト実装のhttps://nette.github.io/tracy/tracy-debug-bar.html

スクリーンショット:

screenshot



しかし、私は本当にPHPStormのような通常のIDEを使用し、上司のようにあなたのアプリをデバッグすることをお勧めします(:

時計:https://www.youtube.com/watch?v=rqDDJfG6ip4またはこの:https://www.youtube.com/watch?v=_U8xrj0-PXU

P.S.適切トレイシーの設定の問題のために、(コメントに書く。

0

Slim3トレイシーgist

Slim3 Debug Bar package

Slim3 Debug Bar もっとスクリーンショットhereを増加し、私は同意する - PHPStormは、デバッグのためのより良いですが、迅速な発見。トレーシー簡単にvarsは。

を近い将来計画エコーコンソール(jQueryのターミナル)を追加 Slim3 Debug Bar Terminal example

関連する問題