Cookie.class.php 3.64 KB
<?php 
class Util_Cookie 
{
	/**
	 * cookie名称
	 */
    private $name = null;
    
    /**
     * cookie值
     */
    private $value = null;
    
    /**
     * cookie有效期
     */
    private $expire = 0;
    
    /**
     * cookie有效路径
     */
    private $path = null;
    
    /**
     * 是否为HTTPS安全连接
     */
    private $secure = null;
    
    /**
     * cookie作用域
     */
    private $domain = null;
    
    /**
     * 设置名称
     *
     * @param string $name 名称
     */
    public function setName($name) 
    {
        $this->name = $name;
        return $this;
    }
    
    /**
     * 取得名称
     *
     * @return string
     */
    public function getName() 
    {
        return $this->name;
    }
    
    /**
     * 设置值
     *
     * @param scalar $value 设置值
     */
    public function setValue($value) 
    {
        $this->value = $value;
        return $this;
    }
    
    /**
     * 取得值
     *
     * @return scalar
     */
    public function getValue() 
    {
        return $this->value;
    }
    
    /**
     * 设置path
     *
     * @param string $path 有效的路径
     */
    public function setPath($path) 
    {
        $this->path = $path;
        return $this;
    }
    
    /**
     * 取得path
     *
     * @return string
     */
    public function getPath() 
    {
        return $this->path;
    }
    
    /**
     * 设置是否为安全连接
     *
     * @param integer $secure 是否为安全连接(false或true)
     */
    public function setSecure($secure) 
    {
        $this->secure = $secure;
        return $this;
    }
    
    /**
     * 判断是否为安全连接
     *
     * @return integer
     */
    public function getSecure() 
    {
    	return $this->secure;
    }
    
    /**
     * 设置有效域
     *
     * @param string $domain 域
     */
    public function setDomain($domain) 
    {
        $this->domain = $domain;
        return $this;
    }
    
    /**
     * 取得有效域
     *
     * @return string
     */
    public function getDomain() 
    {
        return $this->domain;
    }
    
    /**
     * 设置生存期
     *
     * @param integer $maxAge 生存期
     */
    public function setExpire($expire) 
    {
        $this->expire = $expire;
        return $this;
    }
    
    /**
     * 取得生存期
     *
     * @return integer
     */
    public function getExpire() 
    {
        return $this->expire;
    }
    
    /**
     * 发送到浏览器
     *
     * @return boolean
     * @since 0.2
     */
    public function set() 
    {
        $expire = $this->getExpire();
        if ($expire > 0) 
        {
            $expire += time();
        }
        return setcookie($this->getName(), $this->getValue(), $expire, $this->getPath(), $this->getDomain(), $this->getSecure());
    }
    
    /**
     * 取得cookie值
     *
     * @param string $name (cookie名称)
     * @return mixed
     * @since 0.2
     */
    public function get($name, $default = null) 
    {
        return (isset($_COOKIE[$name])) ? $_COOKIE[$name] : $default;
    }
    
    /**
     * 清除cookie
     * 
     * @param string $name (cookie名称)
     * @return void
     * @since 0.2
     */
    public function del($name)
    {
    	if (isset($_COOKIE[$name]))
    	{
    		setcookie($name, null);
    	}
    }
    
    /**
     * 取得所有的cookie值
     *
     * @return array
     * @since 0.2.2
     */
    public function all() 
    {
        return $_COOKIE;
    }
    
    /**
     * 转换为字符串
     *
     * @return string
     * @since 0.2
     */
    public function __toString()
    {
    	return strval($this->value);
    }
}