frontastic / rulerz-bundle
RulerZ的Symfony2扩展包
0.16.0
2023-09-19 09:57 UTC
Requires
- php: >=7.1
- frontastic/rulerz: ^0.22.0
- frontastic/rulerz-bridge: ^1.2.0
- symfony/framework-bundle: ^3.0|^4.0|^5.0|^6.0
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|^5.0|^6.0
Replaces
This package is auto-updated.
Last update: 2024-09-19 12:42:00 UTC
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许可协议的约束。