public function collect(Request $request, Response $response, \Exception $exception = null) { $info = array('calls' => 0, 'hits' => 0); foreach ($this->loggers as $logger) { $name = $logger->getName(); $calls = $logger->getCalls(); $hits = $logger->getHits(); $info['calls'] += $calls; $info['hits'] += $hits; $info['caches'][$name]['options'] = $this->cacheOptions[$name]; $info['caches'][$name]['queries'] = $logger->getQueries(); $info['caches'][$name]['calls'] = $calls; $info['caches'][$name]['hits'] = $hits; } $handlers = Drivers::getDrivers(); foreach ($handlers as $handler) { $pieces = explode('\\', $handler); $name = array_pop($pieces); if (!in_array($name, array('Ephemeral', 'Composite'))) { $info['availableDrivers'][] = $name; } } $info['default'] = $this->defaultCache; $this->data = $info; }
protected function getCachesNode() { $handlers = array_keys(Drivers::getDrivers()); $treeBuilder = new TreeBuilder(); $node = $treeBuilder->root('caches'); $childNode = $node->fixXmlConfig('handler')->requiresAtLeastOneElement()->useAttributeAsKey('name')->prototype('array')->children()->arrayNode('handlers')->requiresAtLeastOneElement()->defaultValue(array('FileSystem'))->prototype('scalar')->validate()->ifNotInArray($handlers)->thenInvalid('A handler of that name is not registered.')->end()->end()->end()->booleanNode('registerDoctrineAdapter')->defaultFalse()->end()->booleanNode('inMemory')->defaultTrue()->end(); foreach ($handlers as $handler) { if ($handler !== 'Composite') { $this->addHandlerSettings($handler, $childNode); } } $childNode->end(); return $node; }
static function createHandler($types, $options) { $handlers = Drivers::getDrivers(); $h = array(); foreach ($types as $type) { $class = $handlers[$type]; if ($type === 'Memcache' && isset($options[$type])) { // Fix servers spec since underlying drivers expect plain arrays, not hashes. $servers = array(); foreach ($options[$type]['servers'] as $serverSpec) { $servers[] = array($serverSpec['server'], $serverSpec['port'], isset($serverSpec['weight']) ? $serverSpec['weight'] : null); } $options[$type]['servers'] = $servers; } $opts = isset($options[$type]) ? $options[$type] : array(); $h[] = new $class($opts); } if (count($h) == 1) { return reset($h); } $class = $handlers['Composite']; $handler = new $class(array('drivers' => $h)); return $handler; }
/** * Returns the current list of handlers that the system is able to use. * * @return array */ public function getDrivers() { return Drivers::getDrivers(); }
public function setUp() { $this->handlers = Drivers::getDrivers(); }
public function testRegisterDriver() { Drivers::registerDriver('Array', 'Stash\\Driver\\Ephemeral'); $drivers = Drivers::getDrivers(); $this->assertArrayHasKey('Array', $drivers, 'getDrivers returns Array driver'); }