/** * Производит конфигурирование компонента * @param array $config опции конфигурации * @return StashCacher * @throws ConfigurationError */ public function configure(array $config = []) { if (!isset($config['driver']['class'])) { throw new ConfigurationError(self::ERR__CACHER_DRIVER_CLASS); } if (!isset($config['driver']['options'])) { throw new ConfigurationError(self::ERR__CACHER_DRIVER_OPTIONS); } /* @var DriverInterface $driver */ $driver = new $config['driver']['class'](); $driver->setOptions($config['driver']['options']); $this->impl = new Pool($driver); return parent::configure($config); }
/** * Конфигурирует экземпляр кэшера * @param array $config опции конфигурации * @return void * @throws ConfigurationError */ private function configureCacher(array $config = []) { if (isset($config['__cacher'])) { $cacherOptions = $config['__cacher']; if (!isset($cacherOptions['class'])) { throw new ConfigurationError(self::ERR__CACHER_CLASS); } if (!isset($cacherOptions['options'])) { throw new ConfigurationError(self::ERR__CACHER_OPTIONS); } $this->cacher = new $cacherOptions['class'](); $this->cacher->configure($cacherOptions['options']); if (isset($cacherOptions['expires'])) { $this->expires = $cacherOptions['expires']; } } }