Statistics
477
7
0
55d
Badges

PDO plus

PDO plus extends PDO in order to log all your queries. This package also includes a Bar Panel for Tracy, see the result below.

Result

PDO logger with Tracy

Installation

Install it via composer:

composer require filisko/pdo-plus

How to use

In this example we are using two different PDO instances just to show that it's doable.

// Create an instance using PDO plus
$pdoConnection1 = new \Filisko\PDOplus\PDO('mysql:host=127.0.0.1;dbname=my_db', 'my_user', 'my_pass');
$pdoConnection2 = new \Filisko\PDOplus\PDO('mysql:host=127.0.0.1;dbname=my_other_db', 'my_user', 'my_pass');

// ... our SQL queries ...

// Dump logged queries of PDO connection 1
var_dump($pdoConnection1->getLog());

// --- the following code shows how to integrate with Tracy debugger

// Instance for Tracy BarPanel for connection 1
$db1Panel = new \Filisko\PDOplus\Tracy\BarPanel($pdoConnection1);
$db1Panel->title = "DB 1 Panel";

// Instance for Tracy BarPanel for connection 2
$db2Panel = new \Filisko\PDOplus\Tracy\BarPanel($pdoConnection2);
$db2Panel->title = "DB 2 Panel";

// Enables Tracy debugger and adds panels for each connection (easy to integrate with legacy apps!)
\Tracy\Debugger::enable();
\Tracy\Debugger::getBar()->addPanel($db1Panel);
\Tracy\Debugger::getBar()->addPanel($db2Panel);

Tests

Run tests:

composer test
# or
php ./vendor/bin/phpunit
  • v3.0.0 Release v3.0.0

    PDOStatement now inherits native PDO's native PDOStatement because it would not work where types are enforced.

    See: #8 (comment)

  • 2.3 Release v2.3

    Tests added because they are now needed.

  • 2.2 Release v2.2

    New release.

  • 2.1 Release v2.1

    Fix on getTab() method of BarPanel.php.

  • 2.0 Release v2.0

    Support for multiple PDO connections added.

  • 1.1 Release v1.1

    Release with bugfix related to Tracy BarPanel.

  • 1.0 Release v1.0

    v1.0 released.

Is this addon outdated? Did you find an issue? Please report it.

Componette Componette admin@componette.com