1
0
mirror of https://github.com/maximebf/php-debugbar.git synced 2025-07-26 03:01:23 +02:00

Makes the PDO wrapper transparent (#407)

* Making PDO wrapper transparent

* Fix check for instance type before enveloping PDO
This commit is contained in:
Igor Santos
2021-06-22 04:12:03 -03:00
committed by GitHub
parent 2a71666f69
commit d848222fd5
2 changed files with 7 additions and 8 deletions

View File

@@ -64,16 +64,12 @@ Display exceptions
## PDO ## PDO
Logs SQL queries. You need to wrap your `PDO` object into a `DebugBar\DataCollector\PDO\TraceablePDO` object. Logs SQL queries.
$pdo = new DebugBar\DataCollector\PDO\TraceablePDO(new PDO('sqlite::memory:'));
$debugbar->addCollector(new DebugBar\DataCollector\PDO\PDOCollector($pdo)); $debugbar->addCollector(new DebugBar\DataCollector\PDO\PDOCollector($pdo));
You can even log queries from multiple `PDO` connections: You can even log queries from multiple `PDO` connections:
$pdoRead = new DebugBar\DataCollector\PDO\TraceablePDO(new PDO('sqlite::memory:'));
$pdoWrite = new DebugBar\DataCollector\PDO\TraceablePDO(new PDO('sqlite::memory:'));
$pdoCollector = new DebugBar\DataCollector\PDO\PDOCollector(); $pdoCollector = new DebugBar\DataCollector\PDO\PDOCollector();
$pdoCollector->addConnection($pdoRead, 'read-db'); $pdoCollector->addConnection($pdoRead, 'read-db');
$pdoCollector->addConnection($pdoWrite, 'write-db'); $pdoCollector->addConnection($pdoWrite, 'write-db');

View File

@@ -21,10 +21,10 @@ class PDOCollector extends DataCollector implements Renderable, AssetProvider
protected $sqlQuotationChar = '<>'; protected $sqlQuotationChar = '<>';
/** /**
* @param TraceablePDO $pdo * @param \PDO $pdo
* @param TimeDataCollector $timeCollector * @param TimeDataCollector $timeCollector
*/ */
public function __construct(TraceablePDO $pdo = null, TimeDataCollector $timeCollector = null) public function __construct(\PDO $pdo = null, TimeDataCollector $timeCollector = null)
{ {
$this->timeCollector = $timeCollector; $this->timeCollector = $timeCollector;
if ($pdo !== null) { if ($pdo !== null) {
@@ -65,11 +65,14 @@ class PDOCollector extends DataCollector implements Renderable, AssetProvider
* @param TraceablePDO $pdo * @param TraceablePDO $pdo
* @param string $name Optional connection name * @param string $name Optional connection name
*/ */
public function addConnection(TraceablePDO $pdo, $name = null) public function addConnection(\PDO $pdo, $name = null)
{ {
if ($name === null) { if ($name === null) {
$name = spl_object_hash($pdo); $name = spl_object_hash($pdo);
} }
if (!($pdo instanceof TraceablePDO)) {
$pdo = new TraceablePDO($pdo);
}
$this->connections[$name] = $pdo; $this->connections[$name] = $pdo;
} }