xdimedrolx / rulerz-bundle
RulerZ的Symfony2 Bundle
0.20.1
2024-01-19 16:10 UTC
Requires
- php: >=7.4
- symfony/config: ^3.4 || ^4.0 || ^5.0 || ^6.0
- symfony/console: ^3.4 || ^4.0 || ^5.0 || ^6.0
- symfony/dependency-injection: ^3.4 || ^4.0 || ^5.0 || ^6.0
- symfony/filesystem: ^3.4 || ^4.0 || ^5.0 || ^6.0
- symfony/http-kernel: ^3.4 || ^4.0 || ^5.0 || ^6.0
- xdimedrolx/rulerz: >=0.23
- xdimedrolx/rulerz-bridge: >=1.1.2
Requires (Dev)
- liip/rmt: ^1.2
- matthiasnoback/symfony-dependency-injection-test: ^4.0
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^7.1|^8.0
- symfony/phpunit-bridge: ^3.0|^4.0
Replaces
- kphoen/rulerz-bundle: >=0.10
This package is auto-updated.
Last update: 2024-09-19 23:30:18 UTC
README
此Bundle将RulerZ集成到Symfony中。
安装
需要此Bundle
composer require 'kphoen/rulerz-bundle'
并在你的app/AppKernel.php
文件中声明它
public function registerBundles() { return array( // ... new KPhoen\RulerZBundle\KPhoenRulerZBundle(), ); }
用法
此Bundle注册了一个名为rulerz
的服务,它是一个RulerZ\RulerZ
的实例。
$rulerz = $this->container->get('rulerz'); $rulerz->filter(/* ... */);
有关更多信息,请参阅RulerZ的文档。
自定义操作符
可以添加自定义操作符到RulerZ执行器。此Bundle提供了一种直接从容器注册新操作符的方法,您只需标记一个服务
services: operator.array.like: class: RulerZ\Operator\ArrayExecutor\Like tags: - { name: rulerz.operator, target: native, operator: like }
除了rulerz.operator
标记之外,还需要两个其他值
target
:我们想要为注册操作符的编译目标;operator
:规则中将使用的操作符名称。
重要:注册为类的操作符必须实现__invoke
魔术方法,因为RulerZ期望自定义操作符被定义为可调用。
验证器
此Bundle提供了一个规则验证器。在其最简单的形式中,它将仅验证给定规则的语法。除非您定义了接受值的白名单,否则未知变量或操作符不会被检测。
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
部分允许您仅启用您的应用程序所需的部分编译目标。
许可证
此Bundle受MIT许可证的约束。