twinkle / dto-validation
此包最新版本(v1.0.0)没有提供许可证信息。
DTO验证器
v1.0.0
2020-01-14 13:06 UTC
Requires
- twinkle/di: ^1.0
Requires (Dev)
- phpunit/phpunit: ^7.5
This package is auto-updated.
Last update: 2024-09-15 20:40:54 UTC
README
DTO验证
在日常生活中,与第三方系统对接是很常见的事情,而这些系统可能并非使用同一种语言实现。由于语言特性不同,总会遇到意想不到的问题。
例如,PHP 是一种弱类型语言,'1' 与 1 没有区别,但在 Java 中,这两个就不一样了。例如,在 PHP 中,null 与 '' 是相等的,但在其他语言中,赋值可能会报错。
这个库主要是为了满足这些需求。
使用
在使用之前,必须将规则验证实例注入到容器中
$container = new \Twinkle\DI\Container([ 'Validate:Required' => \twinkle\dto\validation\annotation\Required::class, 'Validate:Type' => \twinkle\dto\validation\annotation\Type::class, 'Validate:Enum' => \twinkle\dto\validation\annotation\Enum::class, ]); \Twinkle\DI\Tools::setContainer($container);
示例
/** * @Validate # 是否需要较验 * @var integer # 声明类型 * @var integer autoConvert=integer # 声明类型,并且尝试自动转换 * @Required() # 必须字段 * @Required(default=1) # 字段必须,在字段为null的情况下设置默认值 * @Enum(1,2,3) # 字段值必须为1,2,3中的一个 */
注意
为了更好的开发体验,强烈建议安装 annotations 插件
phpstorm(http://plugins.jetbrains.com/plugin/7320-php-annotations)