[ Index ]

PHP Cross Reference of phpBB-3.1.12-deutsch

title

Body

[close]

/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/ -> MetadataBag.php (source)

   1  <?php
   2  
   3  /*
   4   * This file is part of the Symfony package.
   5   *
   6   * (c) Fabien Potencier <fabien@symfony.com>
   7   *
   8   * For the full copyright and license information, please view the LICENSE
   9   * file that was distributed with this source code.
  10   */
  11  
  12  namespace Symfony\Component\HttpFoundation\Session\Storage;
  13  
  14  use Symfony\Component\HttpFoundation\Session\SessionBagInterface;
  15  
  16  /**
  17   * Metadata container.
  18   *
  19   * Adds metadata to the session.
  20   *
  21   * @author Drak <drak@zikula.org>
  22   */
  23  class MetadataBag implements SessionBagInterface
  24  {
  25      const CREATED = 'c';
  26      const UPDATED = 'u';
  27      const LIFETIME = 'l';
  28  
  29      /**
  30       * @var string
  31       */
  32      private $name = '__metadata';
  33  
  34      /**
  35       * @var string
  36       */
  37      private $storageKey;
  38  
  39      /**
  40       * @var array
  41       */
  42      protected $meta = array();
  43  
  44      /**
  45       * Unix timestamp.
  46       *
  47       * @var int
  48       */
  49      private $lastUsed;
  50  
  51      /**
  52       * Constructor.
  53       *
  54       * @param string $storageKey The key used to store bag in the session.
  55       */
  56      public function __construct($storageKey = '_sf2_meta')
  57      {
  58          $this->storageKey = $storageKey;
  59          $this->meta = array(self::CREATED => 0, self::UPDATED => 0, self::LIFETIME => 0);
  60      }
  61  
  62      /**
  63       * {@inheritdoc}
  64       */
  65      public function initialize(array &$array)
  66      {
  67          $this->meta = &$array;
  68  
  69          if (isset($array[self::CREATED])) {
  70              $this->lastUsed = $this->meta[self::UPDATED];
  71              $this->meta[self::UPDATED] = time();
  72          } else {
  73              $this->stampCreated();
  74          }
  75      }
  76  
  77      /**
  78       * Gets the lifetime that the session cookie was set with.
  79       *
  80       * @return int
  81       */
  82      public function getLifetime()
  83      {
  84          return $this->meta[self::LIFETIME];
  85      }
  86  
  87      /**
  88       * Stamps a new session's metadata.
  89       *
  90       * @param int $lifetime Sets the cookie lifetime for the session cookie. A null value
  91       *                      will leave the system settings unchanged, 0 sets the cookie
  92       *                      to expire with browser session. Time is in seconds, and is
  93       *                      not a Unix timestamp.
  94       */
  95      public function stampNew($lifetime = null)
  96      {
  97          $this->stampCreated($lifetime);
  98      }
  99  
 100      /**
 101       * {@inheritdoc}
 102       */
 103      public function getStorageKey()
 104      {
 105          return $this->storageKey;
 106      }
 107  
 108      /**
 109       * Gets the created timestamp metadata.
 110       *
 111       * @return int Unix timestamp
 112       */
 113      public function getCreated()
 114      {
 115          return $this->meta[self::CREATED];
 116      }
 117  
 118      /**
 119       * Gets the last used metadata.
 120       *
 121       * @return int Unix timestamp
 122       */
 123      public function getLastUsed()
 124      {
 125          return $this->lastUsed;
 126      }
 127  
 128      /**
 129       * {@inheritdoc}
 130       */
 131      public function clear()
 132      {
 133          // nothing to do
 134      }
 135  
 136      /**
 137       * {@inheritdoc}
 138       */
 139      public function getName()
 140      {
 141          return $this->name;
 142      }
 143  
 144      /**
 145       * Sets name.
 146       *
 147       * @param string $name
 148       */
 149      public function setName($name)
 150      {
 151          $this->name = $name;
 152      }
 153  
 154      private function stampCreated($lifetime = null)
 155      {
 156          $timeStamp = time();
 157          $this->meta[self::CREATED] = $this->meta[self::UPDATED] = $this->lastUsed = $timeStamp;
 158          $this->meta[self::LIFETIME] = (null === $lifetime) ? ini_get('session.cookie_lifetime') : $lifetime;
 159      }
 160  }


Generated: Thu Jan 11 00:25:41 2018 Cross-referenced by PHPXref 0.7.1