frontastic/rulerz-bundle

RulerZ的Symfony2扩展包

安装次数: 25,757

依赖者: 2

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 26

类型:symfony-bundle

0.16.0 2023-09-19 09:57 UTC

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