dereuromark/cakephp-expose

CakePHP Expose 插件,通过 UUID 替代 AIID 来暴露实体

安装次数: 22,888

依赖者: 1

建议: 0

安全性: 0

星标: 8

关注者: 5

分支: 2

开放问题: 3

类型:cakephp-plugin

2.1.1 2024-03-11 17:22 UTC

This package is auto-updated.

Last update: 2024-09-16 12:57:28 UTC


README

CI Codecov Latest Stable Version Minimum PHP Version License Total Downloads Coding Standards

将 UUID 作为公共标识符暴露实体,而不是数值 AIID(自动递增 ID)主键。

此分支适用于 CakePHP 5.0+。有关详细信息,请参阅 版本映射

主要目标

隐藏/混淆

  • 真正的随机性,因此您无法确定记录的顺序或时间段内的数量。

安全性

  • 批量赋值和序列化不允许设置此暴露字段 - 它默认为隐藏,就像主键一样。

坚固性

  • 必须与更复杂的查询和用例一起工作,包括原子的 updateAll()deleteAll()
  • 速度应与默认方法相似。

简单性

  • 从 AIID 暴露到 UUID 查找的代码更改对所有公共端点都应尽可能少。
  • 默认的短缩器使 UUID 也只有 22 个字符长的简洁字符串。

为什么组合 AIID 和 UUID?

有关详细信息,请参阅 动机

演示

请参阅 沙盒 示例。

安装

您可以使用 Composer 将此插件安装到您的 CakePHP 应用程序中。

推荐的安装方法是

composer require dereuromark/cakephp-expose

然后,使用以下命令加载插件

bin/cake plugin load Expose

用法

请参阅 文档 了解详细信息。

将插件添加到现有记录的快速入门指南

比光速还快

  • 添加行为并运行 bin/cake add_exposed_field PluginName.ModelName {MigrationName} 以生成添加字段的迁移。
  • 执行迁移,然后使用 bin/cake populate_exposed_field PluginName.ModelName 填充现有记录
  • 再次运行 bin/cake add_exposed_field PluginName.ModelName {MigrationName} 以获取新字段的非空字段迁移。
  • 执行该迁移后,所有新记录都将自动存储其暴露字段。

您已完成,现在可以调整公共操作以仅按暴露字段查询,并完全隐藏主键。在 Expose 之上使用 Superimpose 行为意味着您实际上可能根本不需要修改任何代码。应该可以立即使用。

更多迁移技巧请参阅 迁移 部分。