marsapp/system-helper

系统操作助手。

0.2.0 2021-08-04 12:00 UTC

This package is auto-updated.

Last update: 2024-09-04 18:57:35 UTC


README

系统操作助手。

Latest Stable Version Total Downloads Latest Unstable Version License

plastic

1. 概述

2. 描述

3. 安装

3.1. composer install

$ composer require marsapp/system-helper

4. 依赖

  • PHP7

5. 使用

5.1. Cookie

  • Cookie操作的库
  • 包装PHP原生函数/变量setcookie()/$_COOKIE,丰富功能并简化使用方法。
  • 额外功能
    • 支持Cookie前缀包装
    • 支持默认值:过期时间、路径、域名、安全、HttpOnly
    • 专用函数:根域名访问

5.1.1. 设置

  • 使用前设置
// 引入Composer autoload
include('../vendor/autoload.php');

// 宣告使用 SystemHelper
use marsapp\helper\system\SystemHelper;

// 常數設定 - 需設 Cookie前綴、過期時間、預設路徑、根網域
define('COOKIE_DEFAULT_PREFIX', 'dev_');
define('COOKIE_DEFAULT_EXPIRES', 0);
define('COOKIE_DEFAULT_PATH', '/');
define('COOKIE_ROOT_DOMAIN', 'dev.local');

5.1.2. Cookie默认选项 - 单个

5.1.2.1. 描述

cookieOption(string $param, string $value = null) : string|null

5.1.2.2. 参数

  • $param : string
    • Cookie默认选项的目标参数。
  • $value : string
    • 新数据。
  • 当$param不存在时,返回null
  • 当有$param但没有$value(null)时,获取$param的当前值
  • 当有$param和$value时,更新数据后,将返回更新的值

5.1.2.3. 返回值

string|null

5.1.2.4. 示例

// 取得Cookie預設參數值
$httponly = SystemHelper::cookieOption('httponly');

// 設定Cookie預設參數-單筆
$httponly = SystemHelper::cookieOption('httponly', false);

5.1.3. 设置Cookie默认选项 - 多个

5.1.3.1. 描述

cookieOptions(array $options = []) : array

5.1.3.2. 参数

  • $options : array
    • 批量更新Cookie默认选项。

5.1.3.3. 返回值

array,返回完整的Cookie默认选项。

5.1.3.4. 示例

// 變數設定
$options = [
    // 存放路徑
    'path' => '/tmp/',
    // 是否只能通過HTTP協議訪問
    'httponly' => false,
];

// 回傳完整Cookie預設參數
$cookieOptions = SystemHelper::cookieOptions();

// 設定Cookie預設參數-多筆
$cookieOptions = SystemHelper::cookieOptions($options);

5.1.4. 设置Cookie

5.1.4.1. 描述

cookieSet(string $name, string $value = "", array $options = []) : bool

设置Cookie,包装PHP原生函数setcookie()以简化使用。

5.1.4.2. 参数

  • $name : string
    • Cookie的名称。
  • $value : string
    • Cookie的值。
  • $options : array
    • 'prefix' => '', // Cookie前綴,默认无前綴
    • 'expires' => time()+3600, // 过期时间,默认无期限
    • 'path' => '/', // 存放路径
    • 'domain' => "", // 所属域名
    • 'secure' => true, // 是否只在https生效
    • 'httponly' => false, // 是否只能通过HTTP协议访问

5.1.4.3. 返回值

bool,类似于PHP函数setcookie()

5.1.4.4. 示例

// 變數設定
$name = 'testCookie';
$value = "test-" . mt_rand(1111, 9999);
$options = [
    // 存放路徑
    'path' => '/',
    // 是否只能通過HTTP協議訪問
    'httponly' => true,
];

// 設定Cookie
SystemHelper::cookieSet($name, $value, $options);
  • $options可用参数
    • 'prefix' => '', // Cookie前綴,默认无前綴
    • 'expires' => time()+3600, // 过期时间,默认无期限
    • 'path' => '/', // 存放路径
    • 'domain' => "", // 所属域名
    • 'secure' => true, // 是否只在https生效
    • 'httponly' => false, // 是否只能通过HTTP协议访问

5.1.5. 在根域名上设置Cookie

5.1.5.1. 描述

cookieSetRoot(string $name, string $value = "", array $options = []) : bool

类似于cookieSet(),但域名固定在根域名。

5.1.6. 获取Cookie

5.1.6.1. 描述

cookieGet(string $name) : mixed

获取目标Cookie值

5.1.7. 删除Cookie

5.1.7.1. 描述

cookieExpired(string $name, array $options = []) : bool

删除目标Cookie。

5.1.8. 在根域名上删除Cookie

5.1.8.1. 描述

cookieExpiredRoot(string $name, array $options = []) : bool

类似于cookieExpired(),但域名固定在根域名。

6. 示例

见:example/example-cookie.php

7. 贡献

  • 20210424: MarsHung 构建仓库 & 开发
  • 20210621: MarsHung 添加函数cookieOption(), cookieOptions(), COOKIE_DEFAULT_PREFIX