dev-master
9999999-devSession stack middleware.
MIT
The Requires
The Development Requires
- silex/silex ~1.0@dev
- stack/builder ~1.0@dev
- stack/callable-http-kernel ~1.0@dev
- symfony/browser-kit ~2.1
by Igor Wiedler
stack session
Wallogit.com
2017 © Pedro Peláez
Session stack middleware.
Session stack middleware., (*1)
Enables the request session for subsequent middlewares., (*2)
Here's an example giving a silex app access to the session using stack/stack:, (*3)
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\RedirectResponse;
$app = new Silex\Application();
$app->get('/login', function (Request $request) {
$session = $request->getSession();
$username = $request->server->get('PHP_AUTH_USER');
$password = $request->server->get('PHP_AUTH_PW');
if ('igor' === $username && 'password' === $password) {
$session->set('user', array('username' => $username));
return new RedirectResponse('/account');
}
return new Response('Please sign in.', 401, [
'WWW-Authenticate' => sprintf('Basic realm="%s"', 'site_login'),
]);
});
$app->get('/account', function (Request $request) {
$session = $request->getSession();
if (null === $user = $session->get('user')) {
return new RedirectResponse('/login');
}
return sprintf('Welcome %s!', $user['username']);
});
$stack = (new Stack\Builder())
->push('Stack\Session');
$app = $stack->resolve($app);
The following options can be used to configure stack/session:, (*4)
session.storage.save_path (optional): The path for the
NativeFileSessionHandler, defaults to the value of sys_get_temp_dir()., (*5)
session.storage.options (optional): An array of options that is passed to the constructor of the session.storage service., (*6)
In case of the default NativeSessionStorage, the possible options are listed on the PHP manual's session configuration page., (*7)
session.default_locale (optional): The default locale, defaults to en., (*8)
session.cookie_params (optional): Override parameter values for the session cookie
as listed on the PHP manual's session_get_cookie_params page.
(allowed keys: lifetime, path, domain, secure, and httponly), (*9)
The session middleware enables the Session object on the request. You can
access it through the Request object:, (*10)
$session = $request->getSession();
$session->start();
$foo = $session->get('foo');
$session->set('foo', 'bar');
Note that this middleware is a replacement for the silex
SessionServiceProvider. If you want to use it with silex, you might want to
define the session service as follows:, (*11)
$app['session'] = $app->share(function ($app) {
return $app['request']->getSession();
});
This is only needed if you have services that depend on the session service., (*12)
This middleware is based on the silex SessionServiceProvider., (*13)
Session stack middleware.
MIT
stack session