/** * @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; }; }
/** * @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; }