xdimedrolx/rulerz-bundle

RulerZ的Symfony2 Bundle

安装: 284

依赖者: 0

建议者: 0

安全性: 0

星星: 0

关注者: 1

分支: 26

类型:symfony-bundle

0.20.1 2024-01-19 16:10 UTC

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许可证的约束。