Cakephp3 - Показать URL-адрес запроса HTTP-клиента на панели отладки
Я использую CakePHP 3.x . Я добавил свою настраиваемую панель в debug-kit, чтобы показать мои пользовательские данные здесь. На этой панели будут отображаться URL-адреса, на которые HTTP-клиент отправляет запрос.
Любая идея продолжить??
Если мне нужно добавить какую-либо функцию обратного вызова или любое дополнительное событие, чтобы получить URL-адрес из 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;
}
Жду ответа экспертов...
1 ответ
Посмотрите, как нравятся встроенные панели LogPanel
, TimerPanel
, SqlPanel
и т. д. делают вещи, они используют регистраторы и события для сбора данных.
Я бы посоветовал вам пойти тем же путем, чтобы отделить пользовательскую панель от вашего HTTP-клиента, то есть добавить настраиваемую возможность ведения журнала, где ваша панель может подключиться, зарегистрировав регистратор, который фиксирует определенный уровень и / или область, используемую HTTP-клиентом, или отправьте клиенту события, на которые ваша панель может подписаться.
Смотрите также