1
0
Fork 0
milfskleper/librerias/hybridauth/Hybrid/Storage.php

142 lines
3.1 KiB
PHP

<?php
/**
* HybridAuth
* http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
* (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
*/
require_once realpath(dirname(__FILE__)) . "/StorageInterface.php";
/**
* HybridAuth storage manager
*/
class Hybrid_Storage implements Hybrid_Storage_Interface {
/**
* Constructor
*/
function __construct() {
if (!session_id()) {
if (!session_start()) {
throw new Exception("Hybridauth requires the use of 'session_start()' at the start of your script, which appears to be disabled.", 1);
}
}
$this->config("php_session_id", session_id());
$this->config("version", Hybrid_Auth::$version);
}
/**
* Saves a value in the config storage, or returns config if value is null
*
* @param string $key Config name
* @param string $value Config value
* @return array|null
*/
public function config($key, $value = null) {
$key = strtolower($key);
if ($value) {
$_SESSION["HA::CONFIG"][$key] = serialize($value);
} elseif (isset($_SESSION["HA::CONFIG"][$key])) {
return unserialize($_SESSION["HA::CONFIG"][$key]);
}
return null;
}
/**
* Returns value from session storage
*
* @param string $key Key
* @return string|null
*/
public function get($key) {
$key = strtolower($key);
if (isset($_SESSION["HA::STORE"], $_SESSION["HA::STORE"][$key])) {
return unserialize($_SESSION["HA::STORE"][$key]);
}
return null;
}
/**
* Saves a key value pair to the session storage
*
* @param string $key Key
* @param string $value Value
* @return void
*/
public function set($key, $value) {
$key = strtolower($key);
$_SESSION["HA::STORE"][$key] = serialize($value);
}
/**
* Clear session storage
* @return void
*/
function clear() {
$_SESSION["HA::STORE"] = array();
}
/**
* Delete a specific key from session storage
*
* @param string $key Key
* @return void
*/
function delete($key) {
$key = strtolower($key);
if (isset($_SESSION["HA::STORE"], $_SESSION["HA::STORE"][$key])) {
$f = $_SESSION['HA::STORE'];
unset($f[$key]);
$_SESSION["HA::STORE"] = $f;
}
}
/**
* Delete all keys recursively from session storage
*
* @param string $key Key
* @retun void
*/
function deleteMatch($key) {
$key = strtolower($key);
if (isset($_SESSION["HA::STORE"]) && count($_SESSION["HA::STORE"])) {
$f = $_SESSION['HA::STORE'];
foreach ($f as $k => $v) {
if (strstr($k, $key)) {
unset($f[$k]);
}
}
$_SESSION["HA::STORE"] = $f;
}
}
/**
* Returns session storage as a serialized string
* @return string|null
*/
function getSessionData() {
if (isset($_SESSION["HA::STORE"])) {
return serialize($_SESSION["HA::STORE"]);
}
return null;
}
/**
* Restores the session from serialized session data
*
* @param string $sessiondata Serialized session data
* @return void
*/
function restoreSessionData($sessiondata = null) {
$_SESSION["HA::STORE"] = unserialize($sessiondata);
}
}