get('Config'); if (!isset($config['session_config']) || !is_array($config['session_config'])) { throw new ServiceNotCreatedException( 'Configuration is missing a "session_config" key, or the value of that key is not an array' ); } $class = 'Zend\Session\Config\SessionConfig'; $config = $config['session_config']; if (isset($config['config_class'])) { if (!class_exists($config['config_class'])) { throw new ServiceNotCreatedException(sprintf( 'Invalid configuration class "%s" specified in "config_class" session configuration; must be a valid class', $class )); } $class = $config['config_class']; unset($config['config_class']); } $sessionConfig = new $class(); if (!$sessionConfig instanceof ConfigInterface) { throw new ServiceNotCreatedException(sprintf( 'Invalid configuration class "%s" specified in "config_class" session configuration; must implement Zend\Session\Config\ConfigInterface', $class )); } $sessionConfig->setOptions($config); return $sessionConfig; } }