概述
密钥管理服务提供了安全密钥生成功能,支持自定义字符类型和长度,使用密码学安全的随机数生成器。
安装
use YouHuJun\Tool\App\Facades\V1\Utils\Sign\KeyManagerFacade;
密钥管理服务提供了安全密钥生成功能,支持自定义字符类型和长度,使用密码学安全的随机数生成器。
use YouHuJun\Tool\App\Facades\V1\Utils\Sign\KeyManagerFacade;
认证签名服务提供了 HMAC-SHA256 签名生成功能,用于API接口认证、数据完整性校验等场景。
use YouHuJun\Tool\App\Facades\V1\Utils\Sign\AuthSignFacade;
在实际工作中,可能会出现大量的switch和if判断,这种硬编码的方式不利于后续工作的拓展和维护,这时候最好的方式就是使用策略模式
<?php
/**
* 策略模式 完整示例(按你笔记思路实现)
* 场景:电商首页,根据用户性别展示不同商品类目+广告
*/
// 1. 定义策略接口(核心:统一行为规范)
interface UserStrategy
{
public function showCategory(); // 展示商品类目
public function showAd(); // 展示广告
}
// 2. 实现男性策略(继承接口,封装男性行为)
class MaleUserStrategy implements UserStrategy
{
public function showCategory()
{
return "展示:数码、汽车、运动类目";
}
public function showAd()
{
return "展示:数码产品、汽车广告";
}
}
// 3. 实现女性策略(继承接口,封装女性行为)
class FemaleUserStrategy implements UserStrategy
{
public function showCategory()
{
return "展示:美妆、服饰、母婴类目";
}
public function showAd()
{
return "展示:美妆产品、服饰广告";
}
}
// 4. 上下文类(核心:持有策略对象,对外提供统一调用入口)
class UserContext
{
private $strategy; // 策略对象属性
// 注入策略对象(依赖注入,解耦)
public function __construct(UserStrategy $strategy)
{
$this->strategy = $strategy;
}
// 对外统一方法:执行策略行为
public function showPage()
{
$category = $this->strategy->showCategory();
$ad = $this->strategy->showAd();
return "首页展示:{$category} | {$ad}";
}
}
// 5. 客户端调用(根据性别选择策略,无switch/if硬编码)
// 模拟男性用户
$maleContext = new UserContext(new MaleUserStrategy());
echo $maleContext->showPage();
echo PHP_EOL;
// 模拟女性用户
$femaleContext = new UserContext(new FemaleUserStrategy());
echo $femaleContext->showPage();
echo PHP_EOL;
// 扩展:新增儿童策略(只需新增策略类,无需修改原有代码)
class ChildUserStrategy implements UserStrategy
{
public function showCategory()
{
return "展示:玩具、绘本、童装类目";
}
public function showAd()
{
return "展示:玩具、儿童用品广告";
}
}
// 调用儿童策略
$childContext = new UserContext(new ChildUserStrategy());
echo $childContext->showPage();
ShardFacade 提供了数据库分片计算功能,支持分库分表策略,适用于大流量、大数据量的业务场景。通过业务ID(用户UID/店铺UID等业务实体ID)计算分片信息,实现数据的水平拆分。
configKey,避免配置混淆在 VSCode 中,PHP 也有类似 JS 的 ESLint 的工具来统一代码规范,核心是通过 PHP_CodeSniffer(PHPCS,负责代码规范检查) + PHP-CS-Fixer(负责自动修复规范) 配合 VSCode 扩展实现,流程和 ESLint 很像
用 Composer 全局安装 PHPCS 和 PHP-CS-Fixer(需要先安装 Composer):
# 全局安装PHP_CodeSniffer(检查规范)
composer global require squizlabs/php_codesniffer
# 全局安装PHP-CS-Fixer(自动修复规范)
composer global require friendsofphp/php-cs-fixer
提示
vscode关于php开发配置
SnowflakeFacade 提供了基于雪花算法的分布式唯一ID生成功能,基于 godruoyi/php-snowflake 库实现。雪花算法生成的ID是递增的、唯一的、有序的,非常适合用于用户ID、订单ID等场景。
注意
建议在实际开发中可以参照laravel-fast-api,组件化开发自己的业务逻辑.这样便于后续维护以及扩展
生成门面代理以及门面服务(Generate a facade agent and a facade service)
php artisan call:facade 路径/名称