jamisonbryant/cakephp-secureids-plugin

一个用于实体使用安全、非增量ID的CakePHP插件

安装: 320

依赖: 0

建议者: 0

安全: 0

星标: 0

分支: 0

类型:cakephp-plugin

v0.4.1 2019-04-02 21:06 UTC

This package is auto-updated.

Last update: 2024-09-11 20:42:13 UTC


README

一个用于模型使用安全、非增量ID的CakePHP插件。

简介

什么是安全ID?

安全ID是一种使用非增量、不可猜测的随机生成的唯一标识符来标识数据库中记录的方法。这解决了一系列问题,从可用性到安全性等。更多信息,请查看Tom Scott的精彩视频YouTube是否会耗尽视频ID?

什么是CakePHP?

CakePHP是一个使用MVC(模型/视图/控制器)架构的快速开发PHP Web应用程序框架。它首次于2005年8月发布,现在已升级到3.0版本,比以往任何时候都更加强大!CakePHP的一个优点是它支持通过插件扩展其功能,这个插件就是其中之一。

有关CakePHP的更多信息,请访问他们的网站CakePHP.org

安装

先决条件

  • PHP 7.x
  • CakePHP 3.x

命令行安装

使用Composer是安装此插件的首选方法,因为它允许您轻松下载插件及其依赖项,并保持它们更新,并利用Composer的出色类自动加载器。

要使用Composer安装插件

  1. 打开一个终端,并使用cd转到您的CakePHP应用程序的根目录。
  2. 运行composer require jamisonbryant/cakephp-secureids-plugin以下载插件及其依赖项。
  3. 如果您想,可以打开composer.json进行编辑,并修改插件的版本控制方案。

手动安装

您还可以通过点击上面的“下载ZIP”按钮手动安装插件,并将其解压缩到您的CakePHP应用程序的plugins/目录中,但这样做的话,您将不得不手动执行更新。

如果您熟悉git,您也可以使用git clone直接将仓库下载到您的硬盘上。这允许您始终处于插件开发的尖端,但请注意,“尖端”之所以被称为“尖端”,是有原因的。

设置

要将插件添加到您的应用程序,请在应用程序的引导文件中激活插件

Plugin::load('SecureIds');

或使用Cake shell

./bin/cake plugin load SecureIds

注意:您必须将列bid(用于Base64 ID)和uuid(用于UUID)添加到每个想要具有安全ID的模型的表架构中。您可以通过运行包含的迁移(需要CakePHP Migrations插件)轻松完成此操作。

./bin/cake migrations migrate -p SecureIds

用法

因为插件的功能是作为行为实现的,所以您需要将行为(称为Identifiable行为)应用到您想要使用它的每个模型上。为此,您需要为每个想要获取安全ID的模型创建一个表定义类

// File: src/Model/Table/ArticlesTable.php

namespace App\Model\Table;

use Cake\ORM\Table;

class ArticlesTable extends Table
{
    public function initialize(array $config)
    {
        $this->addBehavior('SecureIds.Identifiable');
    }
}

以上代码假定我们在使用一个Article模型,显然你应该用你自己的模型名称替换它。注意:你可能(读:很可能)需要为每个模型创建一个表定义文件,因为 CakePHP 默认不会为你做这件事,而是更喜欢动态推断你的表定义。这对大多数用例来说很棒,但是当我们想要更多控制(比如添加一个行为)时,我们需要自己创建这些文件。

测试

您可以使用 CakePHP 内置的 PHPUnit 支持 来测试插件,但这里有两个前提条件

  1. 您已经全局安装了 PHPUnit,并且可以从命令行访问 phpunit 命令
  2. 您没有删除与 CakePHP 3.x 应用程序一起创建的 phpunit.xml.dist

要测试插件,首先将其测试套件添加到应用程序的 PHPUnit 配置文件中

<?xml version="1.0" encoding="UTF-8"?>

<phpunit ...>
    ...
    <testsuites>
        <testsuite name="App Test Suite">
            <directory>tests/TestCase</directory>
        </testsuite>

        <!-- Add these lines -->
        <testsuite name="Secure IDs Plugin Test Suite">
            <directory>vendor/jamisonbryant/cakephp-secureids-plugin/tests/TestCase</directory>
        </testsuite>
    </testsuites>
    ...
</phpunit>

接下来,进入您的应用程序根目录并运行 phpunit

如果不起作用,运行 composer dump-autoload 并再次尝试。

贡献

错误报告

如果您发现插件中的错误,或者知道您希望添加的功能缺失,请随意在 问题页面 上创建一个问题。 在报告错误时,尽可能详细。包括错误发生时您正在做什么,可能导致错误的原因,以及如果可能,如何重现它。截图也很不错。

出于礼貌,请在创建新问题之前使用搜索工具验证是否已报告过该问题。您可以在开放的错误/功能请求上添加您的评论/+1,但重复的问题需要花费时间来修剪,并会挤出新的、重要的问题。

拉取请求

发现了一个你认为可以修复的错误?那就去做吧!克隆受影响的分支,修复错误,然后创建一个拉取请求,我会尽快审查和接受。但是,在提交拉取请求之前,请确保您的代码遵循 PSR-2 代码风格指南。不遵循风格指南的 PR 将会被拒绝!(当然,礼貌地拒绝)

法律

许可证

本软件受 MIT 许可证(MIT)许可。有关详细信息,请参阅 LICENSE.md

版权

版权所有 (c) 2019 Jamison Bryant。保留所有权利。