PHPackages                             wallabag/rulerz-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. wallabag/rulerz-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

wallabag/rulerz-bundle
======================

Symfony2 Bundle for RulerZ

080.8k↓18.2%2PHP

Since Dec 24Pushed 2y agoCompare

[ Source](https://github.com/wallabag/RulerZBundle)[ Packagist](https://packagist.org/packages/wallabag/rulerz-bundle)[ RSS](/packages/wallabag-rulerz-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

RulerZBundle [![Build Status](https://camo.githubusercontent.com/f5e1308383326bc5d42104132d2e385f7e8e5ff8ff78c0f664ec4f280865c2cf/68747470733a2f2f7472617669732d63692e6f72672f77616c6c616261672f52756c65725a42756e646c652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/wallabag/RulerZBundle)
===========================================================================================================================================================================================================================================================================================================

[](#rulerzbundle-)

This bundle integrates [RulerZ](https://github.com/K-Phoen/rulerz) into Symfony.

Installation
------------

[](#installation)

Require the bundle:

```
composer require 'wallabag/rulerz-bundle'

```

And declare it into your `app/AppKernel.php` file:

```
public function registerBundles()
{
    return array(
        // ...
        new KPhoen\RulerZBundle\KPhoenRulerZBundle(),
    );
}
```

Usage
-----

[](#usage)

This bundle registers a `rulerz` service which is an instance of `RulerZ\RulerZ`.

```
$rulerz = $this->container->get('rulerz');

$rulerz->filter(/* ... */);
```

See [RulerZ's documentation](https://github.com/K-Phoen/rulerz/blob/master/doc/index.md)for more information.

### Custom operators

[](#custom-operators)

[Custom operators can be added](https://github.com/K-Phoen/rulerz/blob/master/doc/custom_operators.md)to RulerZ executors. The bundle provide a way to register new operators directly from the container, you just need to tag a service:

```
services:
    operator.array.like:
        class: RulerZ\Operator\ArrayExecutor\Like
        tags:
            - { name: rulerz.operator, target: native, operator: like }
```

In addition to the `rulerz.operator` tag, two other values are needed:

- `target`: the compilation target we want to register the operator for ;
- `operator`: the name that will be given to the operator in rules.

**Important**: Operators registered as classes must implement the `__invoke`magic method as RulerZ expects custom operators to be defined as callable.

### Validators

[](#validators)

A rule validator is provided by the bundle. In its simplest form, it will only validate the syntax of a given rule. Unknown variables or operators won't be detected unless you define a whitelist of accepted values.

```
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={">", "=", "
