alt3/cakephp-validation-exposer

此包已被弃用,不再维护。没有建议的替代包。

轻松暴露您的 CakePHP 3.x 应用程序的验证规则

安装: 190

依赖: 0

建议者: 0

安全: 0

星级: 9

关注者: 1

分支: 3

开放问题: 0

类型:cakephp-plugin

1.0.2 2016-05-22 13:23 UTC

This package is not auto-updated.

Last update: 2020-02-21 16:55:27 UTC


README

Build Status StyleCI Status codecov Total Downloads License

轻松暴露您的 CakePHP 3.x 应用程序的验证规则。

Abandoned repository

为什么使用它?

暴露应用程序的验证规则对于例如完全分离的前端应用程序非常有用。想象一下,React 前端能够实时配置(非常快)本地验证规则,与您的 CakePHP API 后端的验证规则完全匹配。一些好处

  • 本地和后端验证不再有误匹配
  • 后端验证更改立即应用于前端应用程序
  • 不再有火和希望的数据 POSTing
  • 减少本地的 412 验证错误

要求

  • CakePHP 3.0+

安装

  1. 使用 composer 安装插件

    composer require alt3/cakephp-validation-exposer:"^1.0"
  2. 要启用插件,请运行以下命令

    bin/cake plugin load Alt3/ValidationExposer

    或将以下行手动添加到您的 config/bootstrap.php 文件中

    Plugin::load('Alt3/ValidationExposer');

用法

  1. 在任何位置创建一个 ValidationExposer 对象
  2. 调用 rules() 方法
  3. 以任何您认为合适的方式呈现返回的包含验证信息的数组

API 示例

<?php
use Alt3\ValidationExposer\Lib\ValidationExposer;

class SystemController extends AppController
{

    public function validationInfo()
    {
        $validationExposer = new ValidationExposer([
            'excludedTables' => [
                'table_to_skip' // this table will not be processed
            ],
            'hiddenRuleParts' =>
                'message' // do not show this part inside the `rules` array
            ]
        ]);

        $this->set([
            'success' => true,
            'data' => $validationExposer->rules(),
            '_serialize' => ['success', 'data']
        ]);
    }
}

配置

excludedTables 配置数组中找到的任何表都不会搜索验证信息。

请注意,默认情况下已排除 phinxlog 表。

将以下字段之一添加到 hiddenRuleParts 配置数组中,它们将不会出现在结果集中

  • name: 保存规则名称
  • rule: 保存内部规则名称(数字、唯一等)
  • message: 保存验证消息
  • parts: 保存传递给验证规则的参数

方法

rules()

使用 rules() 方法生成包含所有验证信息的哈希,这些信息在您的应用程序中以类似以下结构组织

[users] => Array
    (
        [id] => Array
            (
                [requiredFor] =>
                [allowedEmptyFor] => create
                [rules] => Array
                    (
                        [0] => Array
                            (
                                [name] => NUMERIC
                                [rule] => numeric
                                [message] =>
                            )

                    )

            )

        [email] => Array
            (
                [requiredFor] => create
                [allowedEmptyFor] =>
                [rules] => Array
                    (
                        [0] => Array
                            (
                                [name] => FORMAT
                                [rule] => email
                                [message] => Invalid email address format.
                            )

                        [1] => Array
                            (
                                [name] => UNIQUE
                                [rule] => validateUnique
                                [message] => This email address already exists
                            )

                    )

            )

        [password] => Array
            (
                [requiredFor] => create
                [allowedEmptyFor] =>
                [rules] => Array
                    (
                        [0] => Array
                            (
                                [name] => MIN_LENGTH
                                [rule] => minLength
                                [message] => Your password must be at least {minLength} characters.
                                [pass] => Array
                                    (
                                        [0] => 8
                                    )

                            )

                        [1] => Array
                            (
                                [name] => MAX_LENGTH
                                [rule] => maxLength
                                [message] => Your password cannot exceed {maxLength} characters
                                [pass] => Array
                                    (
                                        [0] => 255
                                    )

                            )
                    )
            )
        )

tables()

使用 tables() 方法生成包含验证聚合中所有表的扁平数组

(
    [0] => cocktails
    [1] => liquors
    [2] => users
)

excludedTables()

使用 excludedTables() 方法生成不包含在验证聚合中的表的扁平数组

(
    [0] => phinxlog
    [1] => staging
)

贡献

在提交 PR 之前,请确保