我想用我自己的自定義數據擴展Symfony2調試工具欄。如何用自定義數據擴展Symfony2調試工具欄?
我有我想要的記錄特定的方法調用,然後調試工具欄顯示它們的服務。
我讀了cookbook article,但它不是很有幫助。
我創建了自己DataCollector
類:
class PermissionDataCollector extends DataCollector
{
private $permissionCalls = array();
private $permissionExtension;
public function __construct(PermissionExtension $permissionExtension)
{
$this->permissionExtension = $permissionExtension;
}
/**
* Collects data for the given Request and Response.
*
* @param Request $request A Request instance
* @param Response $response A Response instance
* @param \Exception $exception An Exception instance
*
* @api
*/
public function collect(Request $request, Response $response, \Exception $exception = null)
{
$this->permissionCalls = $this->permissionExtension->getPermissionCalls();
$this->data = array(
'calls' => $this->permissionCalls
);
}
public function getPermissionCallsCount()
{
return count($this->permissionCalls);
}
public function getFailedPermissionCallsCount()
{
return count(array_filter($this->permissionCalls, array(&$this, "filterForFailedPermissionCalls")));
}
private function filterForFailedPermissionCalls($var)
{
return $var['success'];
}
/**
* Returns the name of the collector.
*
* @return string The collector name
*
* @api
*/
public function getName()
{
return 'permission';
}
}
的PermissionExtension
記錄所有來電,然後我想在 PermissionDataCollector
檢索該數組調用。
和模板只是輸出{{ collector.permissionCallsCount }}
。
該部分顯示在工具欄中,但只顯示0
這是錯誤的。
我不知道如果我連這樣做的權利,因爲該文檔缺乏這一部分。我使用的Symfony 2.1
有沒有人擴展了自定義數據的工具欄?
我不知道如何從內存中做到這一點,但我知道FOQElasticaBundle會顯示ElasticSearch查詢的日誌,這將是一個很好的開始。 – Steve 2013-05-14 22:19:19
啊太棒了!有用。我基本上需要始終引用'$ this-> data'。非常感謝捆綁參考! – 2013-05-15 09:31:11
哈,拍攝和分數:)很高興它幫助! – Steve 2013-05-18 13:19:08