wp-forge / wp-cookie-manager
一个用于简化Cookie管理的WordPress库。
This package is auto-updated.
Last update: 2024-09-16 21:00:47 UTC
README
一个用于简化Cookie管理的WordPress库。
功能
抽象出所有的PHP Cookie管理和WordPress Cookie常量,让您只需获取和设置Cookie。
如何使用
- 通过 Composer 将其添加到您的项目中
$ composer require wp-forge/wp-cookie-manager
- 确保您已经将Composer自动加载器添加到您的项目中
<?php require __DIR__ . '/vendor/autoload.php';
- 开始管理Cookie
<?php use WP_Forge\CookieManager\CookieManager; // Set a cookie CookieManager::get()->cookie('myCookieName')->set('myCookieValue', time() + 86400); // Expires one day from now // Check if cookie exists CookieManager::get()->cookie('myCookieName')->exists(); // Get cookie value, or default value if it doesn't exist CookieManager::get()->cookie('myCookieName')->value('myDefaultValue'); // Delete cookie CookieManager::get()->cookie('myCookieName')->delete();
使用底层Cookie类
CookieManager
提供了一种全局方式来配置和管理Cookie的使用。然而,如果您需要与配置非常不同的Cookie进行交互,您可以直接使用 Cookie
类。
请注意,直接使用 Cookie
类将不会使用 CookieManager
提供的智能默认值。
<?php use WP_Forge\CookieManager\Cookie; // Create a cookie instance $cookie = Cookie::make('myCookieName') ->setDomain(COOKIE_DOMAIN) ->setPath(COOKIEPATH) ->setSecure(is_ssl()) ->setHttpOnly(true); // Set a cookie $cookie->set('myCookieValue', time() + 86400) // Expires one day from now // Check if cookie exists $cookie->exists(); // Get cookie value $cookie->value(); // Get cookie value, or default value if the cookie doesn't exist $cookie->value('myDefaultValue'); // Delete cookie $cookie->delete();
高级使用
默认情况下,CookieManager
将使用智能的、WordPress特定的默认值。这些默认值可以被覆盖,以下概述了如何操作的步骤。
可自定义属性
名称前缀
默认情况下,所有Cookie名称都以前缀 wp-
开头。这可以通过设置 $namePrefix
属性来更改。
<?php use WP_Forge\CookieManager\CookieManager; $cookieManager = CookieManager::get(); $cookieManager->namePrefix = 'my-prefix-'; // Set to an empty string to disable the prefix $cookieManager->cookie('myCookieName')->exists();
名称后缀
默认情况下,所有Cookie名称都以后缀 -
开头,后面跟着WordPress的 COOKIEHASH
常量。这可以通过设置 $nameSuffix
属性来更改。
<?php use WP_Forge\CookieManager\CookieManager; $cookieManager = CookieManager::get(); $cookieManager->nameSuffix = '-my-suffix'; // Set to an empty string to disable the suffix $cookieManager->cookie('myCookieName')->exists();
路径
默认情况下,Cookie路径设置为WordPress的 COOKIEPATH
常量。这可以通过设置 $path
属性来更改。
<?php use WP_Forge\CookieManager\CookieManager; $cookieManager = CookieManager::get(); $cookieManager->path = '/my/path'; $cookieManager->cookie('myCookieName')->exists();
域名
默认情况下,Cookie域名设置为WordPress的 COOKIE_DOMAIN
常量。如果 COOKIE_DOMAIN
为空,则回退到 $_SERVER['HTTP_HOST']
的值(即当前域名)。这可以通过设置 $domain
属性来覆盖。
<?php use WP_Forge\CookieManager\CookieManager; $cookieManager = CookieManager::get(); $cookieManager->domain = '.example.com'; $cookieManager->cookie('myCookieName')->exists();
安全
默认情况下,$secure
属性设置为WordPress函数 is_ssl()
返回的值。将值设置为 true
将确保Cookie仅通过HTTPS连接发送。将值设置为 false
将确保Cookie始终发送,无论连接是否加密。
<?php use WP_Forge\CookieManager\CookieManager; $cookieManager = CookieManager::get(); $cookieManager->secure = false; $cookieManager->cookie('myCookieName')->exists();
HTTP Only
默认情况下,$httpOnly
属性设置为 false
,这意味着Cookie将在所有上下文中可用。将值设置为 true
将确保Cookie仅可在PHP中访问,而不是JavaScript。这有助于防止通过XSS攻击进行身份盗窃。
<?php use WP_Forge\CookieManager\CookieManager; $cookieManager = CookieManager::get(); $cookieManager->httpOnly = true; $cookieManager->cookie('myCookieName')->exists();