- <?php
- /**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- */
-
- namespace Zend\Session\Service;
-
- use Zend\ServiceManager\Exception\ServiceNotCreatedException;
- use Zend\ServiceManager\FactoryInterface;
- use Zend\ServiceManager\ServiceLocatorInterface;
- use Zend\Session\Config\ConfigInterface;
-
- class SessionConfigFactory implements FactoryInterface
- {
- /**
- * Create session configuration object
- *
- * Uses "session_config" section of configuration to seed a ConfigInterface
- * instance. By default, Zend\Session\Config\SessionConfig will be used, but
- * you may also specify a specific implementation variant using the
- * "config_class" subkey.
- *
- * @param ServiceLocatorInterface $services
- * @return ConfigInterface
- * @throws ServiceNotCreatedException if session_config is missing, or an
- * invalid config_class is used
- */
- public function createService(ServiceLocatorInterface $services)
- {
- $config = $services->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;
- }
- }
# |
Change |
User |
Description |
Committed |
|
#1
|
18334 |
Liz Lam |
initial add of jambox |
9 years ago
|
|