如何使用自定义数据扩展Symfony2调试工具栏?

时间:2013-05-13 15:40:06

标签: debugging symfony symfony-2.1

我想用我自己的自定义数据扩展Symfony2调试工具栏。

我有一个服务,我想记录特定的方法调用,然后在Web调试工具栏中显示它们。

我看了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

是否有人使用自定义数据扩展了工具栏?

0 个答案:

没有答案