使用示例:
``` * //COOKIE * DI()->cookie = 'PhalApi_Cookie'; * * //设置COOKIE服务 * DI()->cookie->set('name', 'phalapi', $_SERVER['REQUEST_TIME'] + 600); * * //获取 * echo DI()->cookie->get('name'); //输出 phalapi * * //删除 * DI()->cookie->delete('name'); * ``` * @package PhalApi\Cookie * @license http://www.phalapi.net/license GPL 协议 * @link http://www.phalapi.net/ * @author dogstar 2015-04-11 */ class PhalApi_Cookie { /** * COOKIE配置 */ protected $config = array(); /** * @param string $config['path'] 路径 * @param string $config['domain'] 域名 * @param boolean $config['secure'] 是否加密 * @param boolean $config['httponly'] 是否只HTTP协议 * @link http://php.net/manual/zh/function.setcookie.php */ public function __construct($config = array()) { $this->config['path'] = isset($config['path']) ? $config['path'] : NULL; $this->config['domain'] = isset($config['domain']) ? $config['domain'] : NULL; $this->config['secure'] = isset($config['secure']) ? $config['secure'] : FALSE; $this->config['httponly'] = isset($config['httponly']) ? $config['httponly'] : FALSE; } /** * 获取COOKIE * * @param string $name 待获取的COOKIE名字 * @return string/NULL/array $name为NULL时返回整个$_COOKIE,存在时返回COOKIE,否则返回NULL */ public function get($name = NULL) { if ($name === NULL) { return $_COOKIE; } return isset($_COOKIE[$name]) ? $_COOKIE[$name] : NULL; } /** * 设置COOKIE * * @param string $name 待设置的COOKIE名字 * @param string/int $value 建议COOKIE值为一些简单的字符串或数字,不推荐存放敏感数据 * @param int $expire 有效期的timestamp,为NULL时默认存放一个月 * @param boolean */ public function set($name, $value, $expire = NULL) { if ($expire === NULL) { $expire = $_SERVER['REQUEST_TIME'] + 2592000; //a month } return setcookie( $name, $value, $expire, $this->config['path'], $this->config['domain'], $this->config['secure'], $this->config['httponly'] ); } /** * 删除COOKIE * * @param strint $name 待删除的COOKIE名字 * @param boolean * @see PhalApi_Cookie::set() */ public function delete($name) { return $this->set($name, '', 0); } /** * 获取COOKIE的配置 */ public function getConfig() { return $this->config; } }