Add Eloquent ORM Tab to PHP Debug Bar
·1 min
Using Eloquent outside of a Laravel project? – Me too!
Collector Class #
class PHPDebugBarEloquentCollector extends \DebugBar\DataCollector\PDO\PDOCollector
{
public function __construct()
{
parent::__construct();
$this->addConnection($this->getTraceablePdo(), 'Eloquent PDO');
}
/**
* @return Illuminate\Database\Capsule\Manager;
*/
protected function getEloquentCapsule() {
// ... Return your Illuminate\Database\Capsule\Manager instance here...
}
/**
* @return PDO
*/
protected function getEloquentPdo() {
return $this->getEloquentCapsule()->getConnection()->getPdo();
}
/**
* @return \DebugBar\DataCollector\PDO\TraceablePDO
*/
protected function getTraceablePdo() {
return new \DebugBar\DataCollector\PDO\TraceablePDO($this->getEloquentPdo());
}
// Override
public function getName() {
return "eloquent_pdo";
}
// Override
public function getWidgets()
{
return array(
"eloquent" => array(
"icon" => "inbox",
"widget" => "PhpDebugBar.Widgets.SQLQueriesWidget",
"map" => "eloquent_pdo",
"default" => "[]"
),
"eloquent:badge" => array(
"map" => "eloquent_pdo.nb_statements",
"default" => 0
)
);
}
}
Collector Registration #
require_once '/path/to/PHPDebugBarEloquentCollector.php';
$debugbar = new DebugBar\StandardDebugBar();
$debugbar->addCollector(new PHPDebugBarEloquentCollector());
Result #

Don’t Like Separate Tabs? #
Multiple PDO objects can be merged into the default Database tab using this approach…
/* @var Illuminate\Database\Capsule\Manager $capsule */
/* @var Doctrine\ORM\EntityManager $em */
/* @var DebugBar\StandardDebugBar $debugbar */
$ormToPdo = [
"Eloquent" => $capsule->getConnection()->getPdo(),
"Doctrine" => $em->getConnection()->getWrappedConnection()
];
$collector = new \DebugBar\DataCollector\PDO\PDOCollector();
foreach($ormToPdo as $orm => $pdo) {
$traceablePDO = new \DebugBar\DataCollector\PDO\TraceablePDO($pdo);
$collector->addConnection($traceablePDO, $orm);
}
$debugbar->addCollector($collector);
Environment #
This post was written for, and tested under, the following technologies…
- PHP (~5.5)
- PHP Debug Bar (~1.10)
- Eloquent ORM (~5.1)
- Doctrine (~2.0)