kphoen/rulerz-bundle

Symfony2 Bundle for RulerZ

安装次数: 619 919

依赖者: 0

建议者: 0

安全性: 0

星标: 38

关注者: 5

分支: 26

开放问题: 2

类型:symfony-bundle

0.15.0 2018-09-17 09:02 UTC

This package is auto-updated.

Last update: 2024-08-29 03:15:49 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 许可证保护。