/**
  * @Method("GET")
  * @Template
  * @Route("/audit")
  */
 public function indexAction(Request $request)
 {
     Pagination::$defaults = array_merge(Pagination::$defaults, ['limit' => 10]);
     $qb = $this->repo("DataDogAuditBundle:AuditLog")->createQueryBuilder('a')->addSelect('s', 't', 'b')->innerJoin('a.source', 's')->leftJoin('a.target', 't')->leftJoin('a.blame', 'b');
     $options = ['sorters' => ['a.loggedAt' => 'DESC'], 'applyFilter' => [$this, 'filters']];
     $sourceClasses = [Pagination::$filterAny => 'Any Source Class'];
     foreach ($this->getDoctrine()->getManager()->getMetadataFactory()->getAllMetadata() as $meta) {
         if ($meta->isMappedSuperclass || strpos($meta->name, 'DataDog\\AuditBundle') === 0) {
             continue;
         }
         $parts = explode('\\', $meta->name);
         $sourceClasses[$meta->name] = end($parts);
     }
     $users = [Pagination::$filterAny => 'Any User', 'null' => 'Unknown'];
     foreach ($this->repo('AppBundle:User')->findAll() as $user) {
         $users[$user->getId()] = (string) $user;
     }
     $logs = new Pagination($qb, $request, $options);
     return compact('logs', 'sourceClasses', 'users');
 }
<?php

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Debug\Debug;
use DataDog\PagerBundle\Pagination;
// If you don't want to setup permissions the proper way, just uncomment the following PHP line
// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
//umask(0000);
// This check prevents access to debug front controllers that are deployed by accident to production servers.
// Feel free to remove this, extend it, or make something more sophisticated.
if (isset($_SERVER['HTTP_CLIENT_IP']) || isset($_SERVER['HTTP_X_FORWARDED_FOR']) || !(in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1')) || php_sapi_name() === 'cli-server')) {
    header('HTTP/1.0 403 Forbidden');
    exit('You are not allowed to access this file. Check ' . basename(__FILE__) . ' for more information.');
}
$loader = (require_once __DIR__ . '/../app/autoload.php');
Debug::enable();
Pagination::$defaults = array_merge(Pagination::$defaults, ['limit' => 15, 'range' => 9]);
Pagination::$maxPerPage = 200;
require_once __DIR__ . '/../app/AppKernel.php';
$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);