2017-11-29 9 views
0

cakephp 3.xを使用しています。私はカスタムパネルをデバッグキットに追加してカスタムデータを表示しています。このパネルには、HTTPクライアントが要求を送信するURLが表示されます。Cakephp3 - デバッグパネルのHTTPクライアント要求URLを表示

どのようなアイデアを進めるのですか?

Cake \ Network \ Http \ Adapter \ StreamからURLを取得してカスタムデバッグパネルにログオンするために、コールバック関数または追加イベントを追加する必要がある場合。 私は最初にデバッグパネルで作業しているので、デバッグパネルにHTTPクライアントURLを表示することはできません。 ...専門家の応答を待ってい

/** 
* Helper method for doing non-GET requests. 
* 
* @param string $method HTTP method. 
* @param string $url  URL to request. 
* @param mixed $data The request body. 
* @param array $options The options to use. Contains auth, proxy etc. 
* 
* @return \Cake\Network\Http\Response 
*/ 
protected function _doRequest($method, $url, $data, $options) 
{ debug(urldecode($url)); 
    $request = $this->_createRequest($method, $url, $data, $options); 

    $time = microtime(); 
    $timerKey = 'debug_http.call.' . $url . '.' . $time; 
    if (Configure::read('debug')) { 
     DebugTimer::start($timerKey, $method . ' ' . $url); 
    } 

    $response = $this->send($request, $options); 

    if (Configure::read('debug')) { 
     DebugTimer::stop($timerKey); 
     ClientCallPanel::addCall($request, $response, DebugTimer::elapsedTime($timerKey)); 
    } 

    return $response; 
} 

に構築する方法で

答えて

1

ルック:

だけ私は以下のコードで $のURLとして要求されたURLを追跡することができる場所、これを、発見しました LogPanelTimerPanelSqlPanelなどのパネルでは、データを収集するためにロガーやイベントを使用します。

私は、あなたのカスタムパネルをHTTPクライアントから分離するために、同じルートを使用することをお勧めします。つまり、パネルが使用する特定のレベルおよび/またはスコープをキャプチャするロガーを登録することで設定可能なロギング機能を追加します。 HTTPクライアントを使用するか、パネルがサブスクライブできるクライアントディスパッチイベントを作成します。

を参照してください。
関連する問題