Ejemplo n.º 1
0
 /**
  * @depends testAddLog
  */
 public function testOnLog()
 {
     $eh = array();
     $this->pdo->onLog(function ($entry) use(&$eh) {
         $eh[] = $entry;
     });
     $log = array('rand' => rand());
     $this->pdo->addLog($log);
     $this->assertEquals(array($log), $eh);
 }
 /**
  * {@inheritDoc}
  */
 public function register(Application $app)
 {
     $app['pdo.factory'] = $app->protect(function ($dsn, $username = null, $password = null, array $options = array()) use($app) {
         if ($app['debug'] && isset($app['monolog'])) {
             $pdo = new PdoLog($dsn, $username, $password, $options);
             $pdo->onLog(function (array $entry) use($app) {
                 $app['monolog']->addDebug(sprintf('PDO query: %s, values :%s', $entry['query'], var_export($entry['values'], true)));
             });
             return $pdo;
         }
         return new PDO($dsn, $username, $password, $options);
     });
     $app['pdo'] = $app->share(function (Application $app) {
         foreach ($app['pdo.defaults'] as $name => $value) {
             if (!isset($app[$name])) {
                 $app[$name] = $value;
             }
         }
         return $app['pdo.factory']($app['pdo.dsn'], $app['pdo.username'], $app['pdo.password'], $app['pdo.options']);
     });
     $app['pdo.defaults'] = array('pdo.username' => null, 'pdo.password' => null, 'pdo.options' => array());
 }