kphoen / rulerz-bundle
Symfony2 Bundle for RulerZ
0.15.0
2018-09-17 09:02 UTC
Requires
- php: >=7.1
- kphoen/rulerz: ~0.17,>=0.19.3
- kphoen/rulerz-bridge: ^1.0
- symfony/framework-bundle: ^3.0|^4.0
Requires (Dev)
- liip/rmt: ^1.2
- matthiasnoback/symfony-dependency-injection-test: ^3.0
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^7.1
- symfony/phpunit-bridge: ^3.0|^4.0
README
此扩展将 RulerZ 集成到 Symfony。
安装
需要该扩展
composer require 'kphoen/rulerz-bundle'
并在您的 app/AppKernel.php
文件中声明它
public function registerBundles() { return array( // ... new KPhoen\RulerZBundle\KPhoenRulerZBundle(), ); }
用法
此扩展注册了一个名为 rulerz
的服务,该服务是 RulerZ\RulerZ
的一个实例。
$rulerz = $this->container->get('rulerz'); $rulerz->filter(/* ... */);
有关更多信息,请参阅 RulerZ 的文档。
自定义操作符
可以向 RulerZ 执行器添加自定义操作符。该扩展提供了一种直接从容器注册新操作符的方法,您只需标记一个服务
services: operator.array.like: class: RulerZ\Operator\ArrayExecutor\Like tags: - { name: rulerz.operator, target: native, operator: like }
除了 rulerz.operator
标签外,还需要两个其他值
target
:我们想要为注册操作符的编译目标;operator
:在规则中将赋予操作符的名称。
重要:作为类的注册操作符必须实现 __invoke
魔法方法,因为 RulerZ 预期自定义操作符被定义为可调用。
验证器
该扩展提供了一个规则验证器。在其最简单的形式中,它将仅验证给定规则的语法。除非您定义了接受值的白名单,否则未知变量或操作符将不会被检测。
use Symfony\Component\Validator\Constraints as Assert; use Symfony\Bridge\RulerZ\Validator\Constraints as RulerZAssert; class TaggingRule { /** * @var string * * @Assert\NotBlank() * @RulerZAssert\ValidRule( * allowed_variables={"title", "url", "isArchived", "isStared", "content", "language", "mimetype", "readingTime", "domainName"}, * allowed_operators={">", "<", ">=", "<=", "=", "is", "!=", "and", "not", "or"} * ) */ private $rule; }
配置参考
# app/config/config.yml rulerz: cache: "%kernel.cache_dir%/rulerz" debug: "%kernel.debug%" targets: native: false doctrine: false doctrine_dbal: false eloquent: false pomm: false solarium: false elasticsearch: false
“targets
”部分允许您仅启用应用程序所需的目标。
许可证
此扩展受 MIT 许可证保护。