wallabag / rulerz-bundle
RulerZ 的 Symfony2 扩展包
dev-master
2023-12-24 22:23 UTC
Requires
- php: >=7.4
- symfony/framework-bundle: ^4.4|^5.4|^6.4
- wallabag/rulerz: dev-master
- wallabag/rulerz-bridge: dev-master
Requires (Dev)
- liip/rmt: ^1.2
- matthiasnoback/symfony-dependency-injection-test: ^4.0
- mikey179/vfsstream: ^1.6.11
- phpunit/phpunit: ^8.5.16
- symfony/phpunit-bridge: ^4.4|^5.4|^6.4
Replaces
This package is auto-updated.
Last update: 2024-08-24 23:54:15 UTC
README
此扩展包将 RulerZ 集成到 Symfony。
安装
需要此扩展包
composer require 'wallabag/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 许可证的保护。