twinkle/dto-validation

此包最新版本(v1.0.0)没有提供许可证信息。

DTO验证器

v1.0.0 2020-01-14 13:06 UTC

This package is auto-updated.

Last update: 2024-09-15 20:40:54 UTC


README

DTO验证

Build Status

在日常生活中,与第三方系统对接是很常见的事情,而这些系统可能并非使用同一种语言实现。由于语言特性不同,总会遇到意想不到的问题。
例如,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)