- <?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;
- use Zend\Session\Config\ConfigInterface as Config;
- use Zend\Session\ManagerInterface as Manager;
- use Zend\Session\SaveHandler\SaveHandlerInterface as SaveHandler;
- use Zend\Session\Storage\StorageInterface as Storage;
- /**
- * Base ManagerInterface implementation
- *
- * Defines common constructor logic and getters for Storage and Configuration
- */
- abstract class AbstractManager implements Manager
- {
- /**
- * @var Config
- */
- protected $config;
- /**
- * Default configuration class to use when no configuration provided
- * @var string
- */
- protected $defaultConfigClass = 'Zend\Session\Config\SessionConfig';
- /**
- * @var Storage
- */
- protected $storage;
- /**
- * Default storage class to use when no storage provided
- * @var string
- */
- protected $defaultStorageClass = 'Zend\Session\Storage\SessionArrayStorage';
- /**
- * @var SaveHandler
- */
- protected $saveHandler;
- /**
- * Constructor
- *
- * @param Config|null $config
- * @param Storage|null $storage
- * @param SaveHandler|null $saveHandler
- * @throws Exception\RuntimeException
- */
- public function __construct(Config $config = null, Storage $storage = null, SaveHandler $saveHandler = null)
- {
- // init config
- if ($config === null) {
- if (!class_exists($this->defaultConfigClass)) {
- throw new Exception\RuntimeException(sprintf(
- 'Unable to locate config class "%s"; class does not exist',
- $this->defaultConfigClass
- ));
- }
- $config = new $this->defaultConfigClass();
- if (!$config instanceof Config) {
- throw new Exception\RuntimeException(sprintf(
- 'Default config class %s is invalid; must implement %s\Config\ConfigInterface',
- $this->defaultConfigClass,
- __NAMESPACE__
- ));
- }
- }
- $this->config = $config;
- // init storage
- if ($storage === null) {
- if (!class_exists($this->defaultStorageClass)) {
- throw new Exception\RuntimeException(sprintf(
- 'Unable to locate storage class "%s"; class does not exist',
- $this->defaultStorageClass
- ));
- }
- $storage = new $this->defaultStorageClass();
- if (!$storage instanceof Storage) {
- throw new Exception\RuntimeException(sprintf(
- 'Default storage class %s is invalid; must implement %s\Storage\StorageInterface',
- $this->defaultConfigClass,
- __NAMESPACE__
- ));
- }
- }
- $this->storage = $storage;
- // save handler
- if ($saveHandler !== null) {
- $this->saveHandler = $saveHandler;
- }
- }
- /**
- * Set configuration object
- *
- * @param Config $config
- * @return AbstractManager
- */
- public function setConfig(Config $config)
- {
- $this->config = $config;
- return $this;
- }
- /**
- * Retrieve configuration object
- *
- * @return Config
- */
- public function getConfig()
- {
- return $this->config;
- }
- /**
- * Set session storage object
- *
- * @param Storage $storage
- * @return AbstractManager
- */
- public function setStorage(Storage $storage)
- {
- $this->storage = $storage;
- return $this;
- }
- /**
- * Retrieve storage object
- *
- * @return Storage
- */
- public function getStorage()
- {
- return $this->storage;
- }
- /**
- * Set session save handler object
- *
- * @param SaveHandler $saveHandler
- * @return AbstractManager
- */
- public function setSaveHandler(SaveHandler $saveHandler)
- {
- $this->saveHandler = $saveHandler;
- return $this;
- }
- /**
- * Get SaveHandler Object
- *
- * @return SaveHandler
- */
- public function getSaveHandler()
- {
- return $this->saveHandler;
- }
- }