Skip to content

Instantly share code, notes, and snippets.

@samt
Created May 11, 2011 21:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save samt/967461 to your computer and use it in GitHub Desktop.
Save samt/967461 to your computer and use it in GitHub Desktop.
OpenFlame Framework Session example
<?php
use \OpenFlame\Framework\Core;
use OpenFlame\Framework\Event\Instance as Event;
use OpenFlame\Framework\Utility\JSON;
$dispatcher = Core::setObject('dispatcher', new \OpenFlame\Framework\Event\Dispatcher());
$session = Core::setObject('session', new \OpenFlame\Framework\Session\Driver());
$header = Core::setObject('header', new \OpenFlame\Framework\Header\Manager());
$input = Core::setObject('input', new \OpenFlame\Framework\Input\Handler());
$session->setStorageEngine(new \OpenFlame\Framework\Session\Storage\EngineFilesystem());
$session->setClientIdEngine(new \OpenFlame\Framework\Session\Client\EngineCookies());
$session->setAutologinEngine(new \OpenFlame\Framework\Session\Autologin\EngineFilesystem());
$session->setOptions(array(
'file.savepath' => \ROOT_PATH . 'cache',
'session.expiretime'=> 20,
'session.ipvallevel'=> 3,
'cookie.expire' => 3600,
'file.gctime' => 30,
'session.loginsid' => true,
'session.trackguest'=> true,
));
$dispatcher->register('session.get', 0, function(Event $event) {
$data = $event->getData();
if(@$data['userid'] == 1)
{
return array(
'username' => 'Sam',
'email' => 'sam@websyntax.net',
);
}
});
$dispatcher->register('session.login', 0, function(Event $event) {
$data = $event->getData();
if($data['username'] == 'Sam')
{
return array(
'successful'=> true,
'data' => array('username' => $data['username'], 'email' => 'sam@websyntax.net'),
'uid' => 1,
'autologin' => true,
);
}
else
{
return array('successful' => false);
}
});
$dispatcher->register('session.default', 0, function(Event $event) {
return array(
'username' => 'Anonymous',
);
});
<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', "1");
define('ROOT_PATH', dirname(__FILE__) . '/');
define('OpenFlame\\ROOT_PATH', dirname(__FILE__) . '/includes/');
// Load the OpenFlame Framework autoloader
require \OpenFlame\ROOT_PATH . 'OpenFlame/Framework/Autoloader.php';
$autoloader = \OpenFlame\Framework\Autoloader::register();
require ROOT_PATH . 'bootstrap.php';
$session->start();
if(@$_GET['mode'] == 'login')
{
$session->login("Sam", "test");
}
else if (@$_GET['mode'] == 'logout')
{
$session->kill();
}
$header->sendHeaders();
echo "<pre>";
echo "-- Session --\n";
echo "Session ID: " . $session->sid . "\n";
echo "User ID: " . $session->uid . "\n";
echo "Autologin Key: " . $session->alk . "\n";
echo "Username: " . @$session->data['username'] . "\n";
echo "Email: " . @$session->data['email'] . "\n";
echo "Authenticated: " . (($session->authenticated) ? "Yes" : "No");
echo "</pre>";
// End our script
$session->commit();
$session->gc();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment