PHP的Cookies库

1.0.1 2024-08-24 19:36 UTC

This package is auto-updated.

Last update: 2024-09-24 19:54:52 UTC


README

refkinscallv/cookie 是一个PHP包,用于管理cookies,可选的加密支持。它集成了 refkinscallv/crypto 包以提供加密的cookie处理。

安装

要安装此包,请使用Composer

composer require refkinscallv/cookie

配置

在开始使用 Cookie 类之前,请确保您已安装了 refkinscallv/crypto 包,因为它提供了加密功能。有关配置 cookieEncrypt 的详细信息,请参阅crypto 文档

用法

基本示例

<?php

    use RF\Cookie\Cookie;

    require "../vendor/autoload.php";

    $cookie = new Cookie([
        'cookieName' => 'myCookie',
        'cookieExpires' => 24, // Cookie expiration in hours
        'cookiePath' => '/',
        'cookieDomain' => $_SERVER['SERVER_NAME'],
        'cookieSecure' => false, // Set to true if using HTTPS
        'cookieHttpOnly' => true,
        /* Optional */
        // 'cookieEncrypt' => [
        //     "encryptKey" => "your-secret-key",
        //     "encryptCipher" => "AES-256-CBC",
        //     "encryptStoreMethod" => "local",
        //     "encryptFile" => "/path/to/encrypt.txt"
        // ]
    ]);
    
    // Set a cookie value
    $cookie->set('key', 'value');
    
    // Get a cookie value
    $value = $cookie->get('key');
    
    // Retrieve all cookie data
    $allData = $cookie->all();
    
    // Unset a cookie value
    $cookie->unset('key');
    
    // Destroy the cookie
    $cookie->destroy();

类方法

__construct(array $args = [])

使用配置选项初始化 Cookie 实例。

  • cookieName (字符串,必需):cookie的名称。
  • cookieExpires (整数,可选):有效期(小时),默认为24。
  • cookiePath (字符串,可选):服务器上cookie可用的路径(默认:/)。
  • cookieDomain (字符串,可选):cookie的域(默认:当前服务器名称)。
  • cookieSecure (布尔值,可选):指示cookie是否仅通过HTTPS发送(默认:false)。
  • cookieHttpOnly (布尔值,可选):指示cookie是否仅通过HTTP协议访问(默认:true)。
  • cookieEncrypt (数组,可选):cookie数据的加密设置。crypto 文档

all(): array

以数组形式检索所有加密的cookie数据。

get(string $value)

从解密后的cookie数据中检索特定值。

set($key, $value = null): bool

设置加密的cookie数据。接受关联数组或单个键值对。

unset($key = null): bool

取消设置加密的cookie数据。接受单个键或键的数组。

destroy()

通过将过期时间设置为过去来销毁cookie。

注意

  • 请确保安全地处理加密密钥和设置。
  • 此包需要 refkinscallv/crypto 包的加密功能。请参阅其文档以获取配置详情。

如需进一步帮助,请参阅crypto 文档或在该包的仓库中提交问题。