hoathis/symfony-ruler-bundle

The Hoa\Ruler Symfony2 bundle.

0.16.12.05 2016-12-05 19:55 UTC

README

Hoa

Hoa is a modular, extensible and structured set of PHP libraries. Moreover, Hoa aims at being a bridge between industrial and research worlds.

Hoathis\SymfonyRulerBundle

Integrates Hoa\Ruler in Symfony.

Installation

With Composer, to include this bundle into your dependencies, you need to require hoathis/symfony-ruler-bundle:

{
    "require": {
        "hoathis/symfony-ruler-bundle": "~0.0"
    }
}

And add RulerBundle to your AppKernel:

// app/AppKernel.php

class AppKernel extends Kernel
{
    //

    public function registerBundles()
    {
        $bundles = array(
            //
            new Hoathis\SymfonyRulerBundle\HoathisSymfonyRulerBundle(),
        );

        //
    }
}

Quick usage

Ruler service

The RulerBundle defines a hoathis.ruler service that can be used as described in Hoa\Ruler's documentation.

public function indexAction(Request $request)
{
    // 1. Write a rule.
    $ruler = $this->get('hoathis.ruler');
    $rule  = 'group in ["customer", "guest"] and points > 30';

    // 2. Create a context.
    $context           = $ruler->getNewContext();
    $context['group']  = 'customer';
    $context['points'] = function () {
        return 42;
    };

    // 3. Assert!
    var_dump(
        $ruler->assert($rule, $context) // bool(true)
    );
}

Profiler

When the debug mode is enabled, all assertions are logged and displayed in the web profiler:

profiler toolbar profiler panel

Configuration reference

hoathis_symfony_ruler:
    debug:  %kernel.debug%

License

Hoa is under the New BSD License (BSD-3-Clause). Please, see LICENSE.