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; } }