/**
  * @param Pomm $pomm
  *
  * @return null
  */
 public function configure(Pomm $pomm)
 {
     $callable = [$this->datacollector, 'execute'];
     foreach ($pomm->getSessionBuilders() as $name => $builder) {
         $pomm->addPostConfiguration($name, function ($session) use($callable) {
             $session->getClientUsingPooler('listener', 'query')->attachAction($callable);
         });
     }
 }
 /**
  * __construct
  *
  * Attach profiler actions to each query builder.
  *
  * @access  public
  * @param   Pomm $pomm
  * @return  null
  */
 public function __construct(Pomm $pomm)
 {
     $this->queries = [];
     foreach ($pomm->getSessionBuilders() as $name => $builder) {
         $listener = new Listener('query');
         $listener->attachAction(array($this, 'execute'));
         $pomm->getSession($name)->registerClient($listener);
     }
 }
 public function __construct(Pomm $pomm, Stopwatch $stopwatch = null)
 {
     $this->stopwatch = $stopwatch;
     $this->data = ['time' => 0, 'queries' => [], 'exception' => null];
     $callable = [$this, 'execute'];
     foreach ($pomm->getSessionBuilders() as $name => $builder) {
         $pomm->addPostConfiguration($name, function ($session) use($callable) {
             $session->getClientUsingPooler('listener', 'query')->attachAction($callable);
         });
     }
 }
 /**
  * register
  *
  * @see ServiceProviderInterface
  */
 public function register(Container $app)
 {
     $app['pomm'] = function ($app) {
         $pomm = new Pomm($app['pomm.configuration']);
         $service = isset($app['pomm.logger.service']) ? $app['pomm.logger.service'] : 'monolog';
         if (isset($app[$service])) {
             $pomm->setLogger($app[$service]);
         }
         return $pomm;
     };
 }
Пример #5
0
 /**
  * @return \PommProject\Foundation\QueryManager\QueryManagerInterface
  */
 public static function queryManager()
 {
     $config = self::config();
     $pomm = new Pomm(array($config['database'] => array('dsn' => "pgsql://{$config['username']}:{$config['password']}@{$config['host']}:{$config['port']}/{$config['database']}", 'class:session_builder' => '\\PommProject\\Foundation\\SessionBuilder')));
     return $pomm->getDefaultsession()->getQueryManager();
 }
 /**
  * Closes the database connection, should be called after handling a request.
  */
 public function shutdown()
 {
     $this->pomm->shutdown();
     unset($this->queryManager);
     $this->state = self::NEED_NEW_CONNECTION;
 }