$_engine
$_engine : \SessionHandlerInterface
The Session handler instance used as an engine for persisting the session data.
This class is a wrapper for the native PHP session functions. It provides several defaults for the most common session configuration via external handlers and helps with using session in cli without any warnings.
Sessions can be created from the defaults using Session::create()
or you can get
an instance of a new session by just instantiating this class and passing the complete
options you want to use.
When specific options are omitted, this class will take its defaults from the configuration
values from the session.*
directives in php.ini. This class will also alter such
directives when configuration values are provided.
create(array $sessionConfig = array()) : static
Returns a new instance of a session after building a configuration bundle for it.
This function allows an options array which will be used for configuring the session
and the handler to be used. The most important key in the configuration array is
defaults
, which indicates the set of configurations to inherit from, the possible
defaults are:
config
key with the name of an already configured Cache engine.sessions
or a model
key in the configuration
to indicate which Table object to use.The full list of options follows:
array | $sessionConfig | Session config. |
__construct(array $config = array())
Constructor.
session.cookie_path
php.ini config. Defaults to base path of app.class
key. To be used as the session
engine for persisting data. The rest of the keys in the array will be passed as
the configuration array for the engine. You can set the class
key to an already
instantiated session handler object.array | $config | The Configuration to apply to this session object |
engine(string|\SessionHandlerInterface|null $class = null, array $options = array()) : \SessionHandlerInterface|null
Sets the session handler instance to use for this session.
If a string is passed for the first argument, it will be treated as the class name and the second argument will be passed as the first argument in the constructor.
If an instance of a SessionHandlerInterface is provided as the first argument, the handler will be set to it.
If no arguments are passed it will return the currently configured handler instance or null if none exists.
string|\SessionHandlerInterface|null | $class | The session handler to use |
array | $options | the options to pass to the SessionHandler constructor |
options(array $options) : void
Calls ini_set for each of the keys in `$options` and set them to the respective value in the passed array.
$session->options(['session.use_cookies' => 1]);
array | $options | Ini options to set. |
if any directive could not be set
read(string|null $name = null) : string|array|null
Returns given session variable, or all of them, if no parameters given.
string|null | $name | The name of the session variable (or a path as sent to Hash.extract) |
The value of the session variable, null if session not available, session not started, or provided name not found in the session.
consume(string $name) : mixed
Reads and deletes a variable from session.
string | $name | The key to read and remove (or a path as sent to Hash.extract). |
The value of the session variable, null if session not available, session not started, or provided name not found in the session.
id(string|null $id = null) : string
Returns the session id.
Calling this method will not auto start the session. You might have to manually assert a started session.
Passing an id into it, you can also replace the session id if the session has not already been started. Note that depending on the session handler, not all characters are allowed within the session id. For example, the file session handler only allows characters in the range a-z A-Z 0-9 , (comma) and - (minus).
string|null | $id | Id to replace the current session id |
Session id