- <?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\EventManager\EventManager;
- use Zend\Session\Storage\StorageInterface as Storage;
- use Zend\Session\Validator\ValidatorInterface as Validator;
-
- /**
- * Validator chain for validating sessions
- */
- class ValidatorChain extends EventManager
- {
- /**
- * @var Storage
- */
- protected $storage;
-
- /**
- * Construct the validation chain
- *
- * Retrieves validators from session storage and attaches them.
- *
- * @param Storage $storage
- */
- public function __construct(Storage $storage)
- {
- $this->storage = $storage;
-
- $validators = $storage->getMetadata('_VALID');
- if ($validators) {
- foreach ($validators as $validator => $data) {
- $this->attach('session.validate', array(new $validator($data), 'isValid'));
- }
- }
- }
-
- /**
- * Attach a listener to the session validator chain
- *
- * @param string $event
- * @param callable $callback
- * @param int $priority
- * @return \Zend\Stdlib\CallbackHandler
- */
- public function attach($event, $callback = null, $priority = 1)
- {
- $context = null;
- if ($callback instanceof Validator) {
- $context = $callback;
- } elseif (is_array($callback)) {
- $test = array_shift($callback);
- if ($test instanceof Validator) {
- $context = $test;
- }
- array_unshift($callback, $test);
- }
- if ($context instanceof Validator) {
- $data = $context->getData();
- $name = $context->getName();
- $this->getStorage()->setMetadata('_VALID', array($name => $data));
- }
-
- $listener = parent::attach($event, $callback, $priority);
- return $listener;
- }
-
- /**
- * Retrieve session storage object
- *
- * @return Storage
- */
- public function getStorage()
- {
- return $this->storage;
- }
- }
# |
Change |
User |
Description |
Committed |
|
#1
|
18334 |
Liz Lam |
initial add of jambox |
9 years ago
|
|