내 자신의 맞춤 데이터로 Symfony2 Debug Toolbar를 확장하고 싶습니다.사용자 정의 데이터로 Symfony2 Debug Toolbar를 확장하는 방법은 무엇입니까?
특정 메소드 호출을 기록한 다음 웹 디버그 도구 모음에 표시하려는 서비스가 있습니다.
은 내가 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
아 멋지다! 그것은 작동합니다. 기본적으로'$ this-> data'를 항상 참조해야합니다. 번들 참조에 대해 감사드립니다. –
하, 슛과 점수 :) 기꺼이 도와 줬어! – Steve