承接 k-ko/slim3-session-middleware 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

k-ko/slim3-session-middleware

最新稳定版本:v0.8.2

Composer 安装命令:

composer require k-ko/slim3-session-middleware

包简介

Session middleware and helper for Slim 3.

README 文档

README

Simple session middleware for the Slim Framework. Also included is a useful helper class that allows PHP built-in session management.

Forked from https://github.com/andrewdyer/slim3-session-middleware

License

Licensed under MIT. Totally free for private or commercial projects.

Installation

composer require k-ko/slim3-session-middleware

Usage

<?php

$app = new \Slim\App();

$app->get('/', function (Request $request, Response $response) use ($container) {
    if (!isset($container['session']['loggedIn'])) {
        // ...
    }
    // ...
});

// Add as LAST middleware to run 1st
$app->add(new \Middleware\SessionMiddleware([
    'autorefresh'   => true,
    'name'          => 'myapp_session',
    'lifetime'      => '1 hour',
    // optional:
    'handler' => new \Session\MySQLiSessionHandler($container['mysqli'])
]));

$app->run();

Supported Options

Option Type Default Description
autorefresh boolean false If you want session to be refresh when user activity is made (interaction with server).
domain tring null Cookie domain, for example 'www.php.net'. To make cookies visible on all subdomains then the domain must be prefixed with a dot like '.php.net'.
handler mixed null Custom session handler class or object. Must implement SessionHandlerInterface as required by PHP.
httponly boolean false If set to true then PHP will attempt to send the httponly flag when setting the session cookie.
ini_settings array null Associative array of custom session configuration.
lifetime int or string "20 minutes" The lifetime of the session cookie. Can be set to any value which strtotime can parse.
name string "session" Name for the session cookie. Defaults to session instead of PHP's PHPSESSID.
path string "/" The path on the domain where the cookie will work. Use a single slash ('/') for all paths on the domain.
secure boolean false Cookies will only be sent over secure connections if true.

Session Helper

The \Session\Helper class can be attached to your app container:

$container = $app->getContainer();

$container['session'] = function ($container) {
    return new \Session\Helper();
};

The helper class can be used to check if a session variable exists in addition to setting, getting and deleting session variables.

$app->get('/', function (Request $request, Response $response) use ($container) {
    // Check if variable exists
    $exists = $container['session']->has('my_key');
    $exists = isset($container['session']->my_key);
    $exists = isset($container['session']['my_key']);

    // Get variable value
    $value = $container['session']->get('my_key', 'default');
    $value = $container['session']->my_key;
    $value = $container['session']['my_key'];

    // Take variable value out from session
    $value = $container['session']->take('my_key', 'default');

    // Set variable value
    $container['session']->set('my_key', 'my_value');
    $container['session']->my_key = 'my_value';
    $container['session']['my_key'] = 'my_value';

    // Remove variable
    $container['session']->remove('my_key');
    unset($container['session']->my_key);
    unset($container['session']['my_key']);
});

Support

If you believe you have found an issue, please report it using the issue tracker, or better yet, fork the repository and submit a pull request.

Useful Links

统计信息

  • 总下载量: 124
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-04-19