alt3 / cakephp-validation-exposer
此包已被弃用,不再维护。没有建议的替代包。
轻松暴露您的 CakePHP 3.x 应用程序的验证规则
1.0.2
2016-05-22 13:23 UTC
Requires
- php: >=5.4.16
- cakephp/cakephp: ~3.1
This package is not auto-updated.
Last update: 2020-02-21 16:55:27 UTC
README
轻松暴露您的 CakePHP 3.x 应用程序的验证规则。
为什么使用它?
暴露应用程序的验证规则对于例如完全分离的前端应用程序非常有用。想象一下,React 前端能够实时配置(非常快)本地验证规则,与您的 CakePHP API 后端的验证规则完全匹配。一些好处
- 本地和后端验证不再有误匹配
- 后端验证更改立即应用于前端应用程序
- 不再有火和希望的数据 POSTing
- 减少本地的 412 验证错误
要求
- CakePHP 3.0+
安装
-
使用 composer 安装插件
composer require alt3/cakephp-validation-exposer:"^1.0"
-
要启用插件,请运行以下命令
bin/cake plugin load Alt3/ValidationExposer
或将以下行手动添加到您的
config/bootstrap.php
文件中Plugin::load('Alt3/ValidationExposer');
用法
- 在任何位置创建一个
ValidationExposer
对象 - 调用
rules()
方法 - 以任何您认为合适的方式呈现返回的包含验证信息的数组
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 之前,请确保
- PHPUnit 和 CakePHP Code Sniffer 测试通过
- Coveralls Code Coverage 保持 100%