FuelPHP - Cookie 和 Session 管理



Cookie 提供客户端数据存储,并且只支持少量数据。通常,每个域为 2KB,具体取决于浏览器。Session 提供服务器端数据存储,并且支持大量数据。让我们了解如何在 FuelPHP Web 应用中创建 Cookie 和 Session。

Cookies

FuelPHP 提供了一个Cookie 类来创建 Cookie 项。Cookie 类用于创建、分配和删除 Cookie。

配置 Cookie

Cookie 类可以通过位于 fuel/app/config/config.php 的主应用程序配置文件进行全局配置。定义如下。

'cookie' => array (  
   
   //Number of seconds before the cookie expires 
   'expiration'  => 0,  
   
   //Restrict the path that the cookie is available to 
   'path'        => '/',  
   
   //Restrict the domain that the cookie is available to 
   'domain'      => null,  
   
   // Only transmit cookies over secure connections 
   'secure'      => false,  
   
   // Only transmit cookies over HTTP, disabling Javascript access 
   'http_only'   => false, 
), 

方法

Cookie 类提供创建、访问和删除 Cookie 项的方法。如下所示:

set()

set 方法用于创建 Cookie 变量。它包含以下参数:

  • $name - $_COOKIE 数组中的键。

  • $value - Cookie 的值。

  • $expiration - Cookie 的有效期(秒)。

  • $path - Cookie 可用的服务器路径。

  • $domain - Cookie 可用的域名。

  • $secure - 如果只想通过安全连接传输 Cookie,则设置为 true。

  • $httponly - 仅允许通过 HTTP 传输 Cookie,禁用 JavaScript 访问。

Cookie::set('theme', 'green');

get()

get 方法用于读取 Cookie 变量。它包含以下参数:

  • $name - $_COOKIE 数组中的键。

  • $value - 如果键在 $_COOKIE 数组中不可用,则返回的值。

Cookie::get('theme');

delete()

delete 方法用于删除 Cookie 变量。它包含以下参数:

  • $name - $_COOKIE 数组中的键。

  • $value - Cookie 的值。

  • $domain - Cookie 可用的域名。

  • $secure - 如果只想通过安全连接传输 Cookie,则设置为 true。

  • $httponly - 仅允许通过 HTTP 传输 Cookie,禁用 JavaScript 访问。

Cookie::delete('theme');

Session

FuelPHP 提供了Session 类来维护应用程序的状态。

配置 Session

Session 类可以通过特殊的配置文件fuel/core/config/session.php进行配置。一些重要的配置项如下所示:

  • auto_initialize - 自动初始化 Session。

  • driver - Session 驱动程序的名称。Session 使用驱动程序实现,可能的选项包括 cookie、db、memcached、redis 和 file。默认驱动程序为 cookie。

  • match_ip - 检查客户端 IP。

  • match_ua - 检查客户端用户代理。

  • expiration_time - Session 超时时间(秒)。

  • rotation_time - 续期 Session 的时间。

Session 方法

Session 类提供用于操作 Session 数据的方法。如下所示:

instance()

instance 方法返回默认实例或由名称标识的特定实例。

$session = Session::instance();            // default instance 
$session = Session::instance('myseesion'); // specific instance

set()

set 方法用于分配 Session 变量。

Session::set('userid', $userid);

get()

get 方法允许您从 Session 中检索存储的变量。

$userid = Session::get('userid'); 

delete()

delete 方法允许您删除存储的 Session 变量。

Session::delete('userid');

create()

create 方法允许您创建一个新的 Session。如果已存在 Session,则会将其销毁并创建一个新的 Session。

Session::create(); 

destroy()

destroy 方法用于销毁现有的 Session。

Session::destroy();

read()

read 方法允许您读取 Session。

Session::read(); 

write()

write 方法允许您写入 Session。

Session::write();

key()

key 方法允许您检索 Session 键的元素。键的值是唯一的。

$session_id = Session::key('session_id'); 
广告

© . All rights reserved.