示例#1
0
 /**
  * _processStartupMetadataNamespace() - this method processes the metadata specific only
  * to a given namespace.  This is typically run at the instantiation of a Zend_Session object.
  *
  * @param string $namespace
  * @return void
  */
 private static function _processStartupMetadataNamespace($namespace)
 {
     if (!isset($_SESSION['__ZF'])) {
         return;
     }
     if (isset($_SESSION['__ZF'][$namespace])) {
         // Expire Namespace by Namespace Hop (ENNH)
         if (isset($_SESSION['__ZF'][$namespace]['ENNH'])) {
             $_SESSION['__ZF'][$namespace]['ENNH']--;
             if ($_SESSION['__ZF'][$namespace]['ENNH'] === 0) {
                 if (isset($_SESSION[$namespace])) {
                     self::$_expiringData[$namespace] = $_SESSION[$namespace];
                     unset($_SESSION[$namespace]);
                 }
                 unset($_SESSION['__ZF'][$namespace]['ENNH']);
             }
         }
         // Expire Namespace Variables by Namespace Hop (ENVNH)
         if (isset($_SESSION['__ZF'][$namespace]['ENVNH'])) {
             foreach ($_SESSION['__ZF'][$namespace]['ENVNH'] as $variable => $hops) {
                 $_SESSION['__ZF'][$namespace]['ENVNH'][$variable]--;
                 if ($_SESSION['__ZF'][$namespace]['ENVNH'][$variable] === 0) {
                     if (isset($_SESSION[$namespace][$variable])) {
                         self::$_expiringData = $_SESSION[$namespace][$variable];
                         unset($_SESSION[$namespace][$variable]);
                     }
                     unset($_SESSION['__ZF'][$namespace]['ENVNH'][$variable]);
                 }
             }
         }
     }
     if (empty($_SESSION['__ZF'][$namespace])) {
         unset($_SESSION['__ZF'][$namespace]);
     }
     if (empty($_SESSION['__ZF'])) {
         unset($_SESSION['__ZF']);
     }
 }