2017 © Pedro Peláez
 

library slim-session-manager

image

yusukezzz/slim-session-manager

  • Wednesday, September 3, 2014
  • by yusukezzz
  • Repository
  • 4 Watchers
  • 19 Stars
  • 991 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 3 Forks
  • 2 Open issues
  • 2 Versions
  • 2 % Grown

The README.md

Slim Session-Manager

This is a middleware to integrate illuminate/session with SlimFramework., (*1)

install

Require this package in your composer.json, (*2)

"yusukezzz/slim-session-manager": "0.*"

important

choose your session driver, filesystem or database and install it., (*3)

"illuminate/filesystem": "4.2.*"
"illuminate/database": "4.2.*"

if you use database, require sessions table. (for mysql), (*4)

CREATE TABLE `sessions` (
  `id` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `payload` text COLLATE utf8_unicode_ci NOT NULL,
  `last_activity` int(11) NOT NULL,
  UNIQUE KEY `session_id_unique` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

example

<?php
require_once __DIR__ . '/../vendor/autoload.php';
date_default_timezone_set('UTC');

/**
 * For IDE auto completions
 *
 * @property \Illuminate\Session\Store $session
 */
class MySlim extends \Slim\Slim {}

$app = new MySlim([
    // cookie encryption (strongly recommend)
    'cookies.encrypt' => true,
    'cookies.secret_key' => 'put your secret key',
    // session config
    'sessions.driver' => 'file', // or database
    'sessions.files' => __DIR__ . '/../sessions', // require mkdir
    //'sessions.table' => 'sessions', // require create table
]);

$manager = new \Slim\Middleware\SessionManager($app);
$manager->setFilesystem(new \Illuminate\Filesystem\Filesystem());
// or sessions.driver == 'database'
// ... setup Eloquent ...
// $manager->setDbConnection(Eloquent::getConnection());
$session = new \Slim\Middleware\Session($manager);

$app->add($session);

$app->get('/', function() use ($app)
{
    $current_user = $app->session->get('current_user');
    if (is_null($current_user)) {
        echo <<<HTML
Hello Session.<br>


</br> HTML; } else { list($id, $name) = $current_user; echo <<<HTML Welcome, {$name} (id={$id})</br>
</br> HTML; } echo $app->session->get('message').'</br>'; }); $app->post('/session', function() use ($app) { $app->session->put('current_user', [1234, 'hoge_user']); $app->session->flash('message', 'logged in.'); $app->response->redirect('/'); }); $app->delete('/session', function() use ($app) { $app->session->forget('current_user'); $app->session->flash('message', 'logged out.'); $app->response->redirect('/'); }); $app->run();

License

MIT, (*5)

The Versions

03/09 2014