SessionInterface.php 4.56 KB
Newer Older
Taylor Otwell committed
1 2 3 4 5 6 7 8 9 10 11 12 13
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\HttpFoundation\Session;

14 15
use Symfony\Component\HttpFoundation\Session\Storage\MetadataBag;

Taylor Otwell committed
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
/**
 * Interface for the session.
 *
 * @author Drak <drak@zikula.org>
 */
interface SessionInterface
{
    /**
     * Starts the session storage.
     *
     * @return Boolean True if session started.
     *
     * @throws \RuntimeException If session fails to start.
     *
     * @api
     */
32
    public function start();
Taylor Otwell committed
33 34 35 36 37 38 39 40

    /**
     * Returns the session ID.
     *
     * @return string The session ID.
     *
     * @api
     */
41
    public function getId();
Taylor Otwell committed
42 43 44 45 46 47 48 49

    /**
     * Sets the session ID
     *
     * @param string $id
     *
     * @api
     */
50
    public function setId($id);
Taylor Otwell committed
51 52 53 54 55 56 57 58

    /**
     * Returns the session name.
     *
     * @return mixed The session name.
     *
     * @api
     */
59
    public function getName();
Taylor Otwell committed
60 61 62 63 64 65 66 67

    /**
     * Sets the session name.
     *
     * @param string $name
     *
     * @api
     */
68
    public function setName($name);
Taylor Otwell committed
69 70 71 72 73 74 75

    /**
     * Invalidates the current session.
     *
     * Clears all session attributes and flashes and regenerates the
     * session and deletes the old session from persistence.
     *
76 77 78 79 80
     * @param integer $lifetime Sets the cookie lifetime for the session cookie. A null value
     *                          will leave the system settings unchanged, 0 sets the cookie
     *                          to expire with browser session. Time is in seconds, and is
     *                          not a Unix timestamp.
     *
Taylor Otwell committed
81 82 83 84
     * @return Boolean True if session invalidated, false if error.
     *
     * @api
     */
85
    public function invalidate($lifetime = null);
Taylor Otwell committed
86 87 88 89 90

    /**
     * Migrates the current session to a new session id while maintaining all
     * session attributes.
     *
91 92 93 94 95
     * @param Boolean $destroy  Whether to delete the old session or leave it to garbage collection.
     * @param integer $lifetime Sets the cookie lifetime for the session cookie. A null value
     *                          will leave the system settings unchanged, 0 sets the cookie
     *                          to expire with browser session. Time is in seconds, and is
     *                          not a Unix timestamp.
Taylor Otwell committed
96 97 98 99 100
     *
     * @return Boolean True if session migrated, false if error.
     *
     * @api
     */
101
    public function migrate($destroy = false, $lifetime = null);
Taylor Otwell committed
102 103 104 105 106 107 108 109

    /**
     * Force the session to be saved and closed.
     *
     * This method is generally not required for real sessions as
     * the session will be automatically saved at the end of
     * code execution.
     */
110
    public function save();
Taylor Otwell committed
111 112 113 114 115 116 117 118 119 120

    /**
     * Checks if an attribute is defined.
     *
     * @param string $name The attribute name
     *
     * @return Boolean true if the attribute is defined, false otherwise
     *
     * @api
     */
121
    public function has($name);
Taylor Otwell committed
122 123 124 125 126 127 128 129 130 131 132

    /**
     * Returns an attribute.
     *
     * @param string $name    The attribute name
     * @param mixed  $default The default value if not found.
     *
     * @return mixed
     *
     * @api
     */
133
    public function get($name, $default = null);
Taylor Otwell committed
134 135 136 137 138 139 140 141 142

    /**
     * Sets an attribute.
     *
     * @param string $name
     * @param mixed  $value
     *
     * @api
     */
143
    public function set($name, $value);
Taylor Otwell committed
144 145 146 147 148 149 150 151

    /**
     * Returns attributes.
     *
     * @return array Attributes
     *
     * @api
     */
152
    public function all();
Taylor Otwell committed
153 154 155 156 157 158

    /**
     * Sets attributes.
     *
     * @param array $attributes Attributes
     */
159
    public function replace(array $attributes);
Taylor Otwell committed
160 161 162 163 164 165 166 167 168 169

    /**
     * Removes an attribute.
     *
     * @param string $name
     *
     * @return mixed The removed value
     *
     * @api
     */
170
    public function remove($name);
Taylor Otwell committed
171 172 173 174 175 176

    /**
     * Clears all attributes.
     *
     * @api
     */
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
    public function clear();

    /**
     * Checks if the session was started.
     *
     * @return Boolean
     */
    public function isStarted();

    /**
     * Registers a SessionBagInterface with the session.
     *
     * @param SessionBagInterface $bag
     */
    public function registerBag(SessionBagInterface $bag);

    /**
     * Gets a bag instance by name.
     *
     * @param string $name
     *
     * @return SessionBagInterface
     */
    public function getBag($name);

    /**
     * Gets session meta.
     *
     * @return MetadataBag
     */
    public function getMetadataBag();
Taylor Otwell committed
208
}