Source for file Session.php

Documentation is available at Session.php

  1. <?php
  2. /**
  3.  * Teeple2 - PHP5 Web Application Framework inspired by Seasar2
  4.  *
  5.  * PHP versions 5
  6.  *
  7.  * LICENSE: This source file is subject to version 3.0 of the PHP license
  8.  * that is available through the world-wide-web at the following URI:
  9.  * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
  10.  * the PHP License and are unable to obtain it through the web, please
  11.  * send a note to license@php.net so we can mail you a copy immediately.
  12.  *
  13.  * @package     teeple
  14.  * @author      Mitsutaka Sato <miztaka@gmail.com>
  15.  * @license     http://www.php.net/license/3_0.txt  PHP License 3.0
  16.  */
  17.  
  18. /**
  19.  * Session管理を行う
  20.  *
  21.  * @package     teeple
  22.  */
  23. {
  24.  
  25.     /**
  26.      * 設定されている値を返却
  27.      *
  28.      * @param   string  $key    パラメータ名
  29.      * @return  string  パラメータの値
  30.      */
  31.     public function getParameter($key{
  32.         return isset($_SESSION[$key]?
  33.             $_SESSION[$keyNULL;
  34.     }
  35.  
  36.     /**
  37.      * 値をセット
  38.      *
  39.      * @param   string  $key    パラメータ名
  40.      * @param   string  $value  パラメータの値
  41.      */
  42.     public function setParameter($key$value{
  43.         $_SESSION[$key$value;
  44.     }
  45.  
  46.     /**
  47.      * 値をセット(オブジェクトをセット)
  48.      *
  49.      * @param   string  $key    パラメータ名
  50.      * @param   Object  $value  パラメータの値
  51.      */
  52.     public function setParameterRef($key&$value{
  53.         $_SESSION[$key=$value;
  54.     }
  55.  
  56.     /**
  57.      * 値を返却(配列で返却)
  58.      *
  59.      * @param   string  $key    パラメータ名
  60.      * @return  string  パラメータの値(配列)
  61.      */
  62.     public function getParameters({
  63.         return isset($_SESSION$_SESSION NULL;
  64.     }
  65.  
  66.     /**
  67.      * 値を削除する
  68.      *
  69.      * @param   string  $key    パラメータ名
  70.      */
  71.     public function removeParameter($key{
  72.         unset($_SESSION[$key]);
  73.     }
  74.  
  75.     /**
  76.      * セッション処理を開始
  77.      * TODO regenerateするとブラウザバックとかしたときにおかしくなるのでコメントアウト
  78.      */
  79.     public function start({
  80.  
  81.         if (isset($_COOKIE[session_name()])) {
  82.             @ini_set('session.use_trans_sid','1');
  83.         }
  84.         @session_start();
  85.         //@session_regenerate_id(true);
  86.     }
  87.  
  88.     /**
  89.      * セッション処理を終了
  90.      *
  91.      */
  92.     public function close({
  93.         $_SESSION array();
  94.         session_destroy();
  95.     }
  96.  
  97.     /**
  98.      * セッション名を返却
  99.      *
  100.      * @return  string  セッション名
  101.      */
  102.     public function getName({
  103.         return session_name();
  104.     }
  105.  
  106.     /**
  107.      * セッション名をセット
  108.      *
  109.      * @param   string  $name   セッション名
  110.      */
  111.     public function setName($name ''{
  112.         if ($name{
  113.             session_name($name);
  114.         }
  115.     }
  116.  
  117.     /**
  118.      * セッションIDを返却
  119.      *
  120.      * @return  string  セッションID
  121.      */
  122.     public function getID({
  123.         return session_id();
  124.     }
  125.  
  126.     /**
  127.      * セッションIDをセット
  128.      *
  129.      * @param   string  $id セッションID
  130.      */
  131.     public function setID($id ''{
  132.         if ($id{
  133.             session_id($id);
  134.         }
  135.     }
  136.  
  137.     /**
  138.      * save_pathをセット
  139.      *
  140.      * @param   string  $savePath   save_path
  141.      */
  142.     public function setSavePath($savePath{
  143.         if (!isset($savePath)) {
  144.             return;
  145.         }
  146.         session_save_path($savePath);
  147.     }
  148.  
  149.     /**
  150.      * cache_limiterをセット
  151.      *
  152.      * @param   string  $cacheLimiter   cache_limiter
  153.      */
  154.     public function setCacheLimiter($cacheLimiter{
  155.         if (!isset($cacheLimiter)) {
  156.             return;
  157.         }
  158.         session_cache_limiter($cacheLimiter);
  159.     }
  160.  
  161.     /**
  162.      * cache_expireをセット
  163.      *
  164.      * @param   string  $cacheExpire    cache_expire
  165.      */
  166.     public function setCacheExpire($cacheExpire{
  167.         if (!isset($cacheExpire)) {
  168.             return;
  169.         }
  170.         session_cache_expire($cacheExpire);
  171.     }
  172.  
  173.     /**
  174.      * use_cookies をセット
  175.      *
  176.      * @param   string  $useCookies use_cookies
  177.      */
  178.     public function setUseCookies($useCookies{
  179.         if (!isset($useCookies)) {
  180.             return;
  181.         }
  182.         ini_set('session.use_cookies'$useCookies 0);
  183.     }
  184.  
  185.     /**
  186.      * cookie_lifetime をセット
  187.      *
  188.      * @param   string  $cookieLifetime cookie_lifetime
  189.      */
  190.     public function setCookieLifetime($cookieLifetime{
  191.         
  192.         if (!isset($cookieLifetime)) {
  193.             return;
  194.         }
  195.         $cookie_params session_get_cookie_params();
  196.         session_set_cookie_params($cookieLifetime$cookie_params['path']$cookie_params['domain']$cookie_params['secure']);
  197.     }
  198.  
  199.     /**
  200.      * cookie_path をセット
  201.      *
  202.      * @param   string  $cookiePath cookie_path
  203.      */
  204.     public function setCookiePath($cookiePath{
  205.  
  206.         if (!isset($cookiePath)) {
  207.             return;
  208.         }
  209.         $cookie_params session_get_cookie_params();
  210.         session_set_cookie_params($cookie_params['lifetime']$cookiePath$cookie_params['domain']$cookie_params['secure']);
  211.     }
  212.  
  213.     /**
  214.      * cookie_domain をセット
  215.      *
  216.      * @param   string  $cookieDomain   cookie_domain
  217.      */
  218.     public function setCookieDomain($cookieDomain{
  219.  
  220.         if (!isset($cookieDomain)) {
  221.             return;
  222.         }
  223.         $cookie_params session_get_cookie_params();
  224.         session_set_cookie_params($cookie_params['lifetime']$cookie_params['path']$cookieDomain$cookie_params['secure']);
  225.     }
  226.  
  227.     /**
  228.      * cookie_secure をセット(SSL利用時などにsecure属性を設定する)
  229.      *
  230.      * @param   string  $cookieSecure   cookie_secure
  231.      */
  232.     public function setCookieSecure($cookieSecure{
  233.  
  234.         if (!isset($cookieSecure)) {
  235.             return;
  236.         }
  237.         if (preg_match('/^true$/i'$cookieSecure||
  238.             preg_match('/^secure$/i'$cookieSecure||
  239.             preg_match('/^on$/i'$cookieSecure||
  240.             ($cookieSecure === '1'|| ($cookieSecure === 1)) {
  241.             $cookieSecure true;
  242.         else {
  243.             $cookieSecure false;
  244.         }
  245.  
  246.         $cookie_params session_get_cookie_params();
  247.         session_set_cookie_params($cookie_params['lifetime']$cookie_params['path']$cookie_params['domain']$cookieSecure);
  248.     }
  249. }
  250. ?>

Documentation generated on Mon, 26 Apr 2010 08:59:56 +0900 by phpDocumentor 1.4.3