我正在使用cakephp 3.x.我在调试工具包中添加了我的自定义面板,在此处显示我的自定义数据。此面板将显示URL - HTTP客户端向其发送请求。
有什么想法继续吗?
如果我需要添加任何回调函数或任何其他事件来从Cake \ Network \ Http \ Adapter \ Stream获取URL并将其记录到我的自定义调试面板。 我是第一次在调试面板上工作,所以我无法向调试面板显示HTTP客户端URL。
只有我找到了这个,我可以在下面的代码中将请求的网址跟踪为 $ 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;
}
等待专家'响应...
答案 0 :(得分:1)
查看LogPanel
,TimerPanel
,SqlPanel
等内置面板如何做事,他们使用记录器和事件来收集数据。
我建议您使用相同的路径将自定义面板与HTTP客户端分离,即添加可配置的日志记录功能,您的面板可以通过注册捕获所使用的特定级别和/或范围的记录器来挂钩通过HTTP客户端,或让您的客户端调度您的面板可以订阅的事件。
另见