dms / dms-filter
DMS Filter 提供基于注解的实体过滤功能。
v5.0.0
2023-09-05 13:43 UTC
Requires
- php: ~8.0 || ~8.1
- doctrine/annotations: ^1.13
- laminas/laminas-zendframework-bridge: ^1.0
Requires (Dev)
- dms/coding-standard: ^12
- doctrine/cache: ~1.3
- laminas/laminas-filter: ^2.9
- phpunit/phpunit: ^9
Suggests
- ext-mbstring: for encoding safety
- laminas/laminas-filter: Use Laminas Filters via DMS Filter
- dev-master
- v5.0.0
- v4.0.2
- v4.0.1
- v4.0.0
- v3.0.0
- v2.0.0
- 1.x-dev
- v1.1.1
- v1.1
- 1.0.2
- dev-dependabot/composer/doctrine/annotations-tw-1.13or-tw-2.0
- dev-dependabot/composer/doctrine/cache-2.2.0
- dev-dependabot/composer/doctrine/annotations-2.0.1
- dev-task/phpstan-effort
- dev-dependabot/add-v2-config-file
- dev-refactoring/php7
- dev-2.dev
This package is auto-updated.
Last update: 2024-09-06 00:34:02 UTC
README
该库提供了一种服务,可以用于根据注解过滤对象值。
安装
使用 composer 将 DMS\Filter 添加到您的应用中
composer require dms/dms-filter
使用方法
注解方式
您的实体
<?php namespace App\Entity; //Import Annotations use DMS\Filter\Rules as Filter; class User { /** * @Filter\StripTags() * @Filter\Trim() * @Filter\StripNewlines() * * @var string */ public string $name; /** * @Filter\StripTags() * @Filter\Trim() * @Filter\StripNewlines() * * @var string */ public string $email; } ?>
过滤
<?php //Get Doctrine Reader $reader = new Annotations\AnnotationReader(); $reader->setEnableParsePhpImports(true); //Load AnnotationLoader $loader = new Mapping\Loader\AnnotationLoader($reader); $this->loader = $loader; //Get a MetadataFactory $metadataFactory = new Mapping\ClassMetadataFactory($loader); //Get a Filter $filter = new DMS\Filter\Filter($metadataFactory); //Get your Entity $user = new App\Entity\User(); $user->name = "My <b>name</b>"; $user->email = " email@mail.com"; //Filter you entity $filter->filter($user); echo $user->name; //"My name" echo $user->email; //"email@mail.com" ?>
完整示例: https://gist.github.com/1098352
属性方式
您的实体
<?php namespace App\Entity; //Import Attributes use DMS\Filter\Rules as Filter; class User { #[Filter\StripTags] #[Filter\Trim] #[Filter\StripNewlines] public string $name; #[Filter\StripTags] #[Filter\Trim] #[Filter\StripNewlines] public string $email; } ?>
过滤
<?php //Load AttributeLoader $loader = new Mapping\Loader\AttributeLoader(); $this->loader = $loader; //Get a MetadataFactory $metadataFactory = new Mapping\ClassMetadataFactory($loader); //Get a Filter $filter = new DMS\Filter\Filter($metadataFactory); //Get your Entity $user = new App\Entity\User(); $user->name = "My <b>name</b>"; $user->email = " email@mail.com"; //Filter you entity $filter->filter($user); echo $user->name; //"My name" echo $user->email; //"email@mail.com" ?>
依赖
该包依赖于以下外部库
- Doctrine Annotations
贡献
欢迎发送拉取请求,只需遵循以下指南
- 分支
- 代码
- 测试
- 只需创建 FilterTestCase 并运行
phpunit
- 只需创建 FilterTestCase 并运行
- 提交 PR
致谢
该库受到 Symfony 2 验证器组件的启发,旨在与其协同工作。
Symfony 2 验证器: https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Validator