wallabag/rulerz-bundle

RulerZ 的 Symfony2 扩展包

安装次数: 29,564

依赖者: 1

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 26

类型:symfony-bundle

dev-master 2023-12-24 22:23 UTC

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 许可证的保护。