You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ivan Enderlin 8f790413c4 Prepare 0.16.12.05. 3 years ago
DataCollector Updated the bundle's namespace to "Hoathis\SymfonyRulerBundle" 4 years ago
DependencyInjection Fix configuration root 4 years ago
Resources Update Hoa's logo. 4 years ago
Ruler Provide a factory method in Ruler to create a new context 4 years ago
.gitattributes Add .gitattributes 4 years ago
CHANGELOG.md Prepare 0.16.12.05. 3 years ago
HoathisSymfonyRulerBundle.php Updated the bundle's namespace to "Hoathis\SymfonyRulerBundle" 4 years ago
LICENSE Update copyright 4 years ago
README.md Fix configuration root 4 years ago
composer.json Updated dependency version 3 years ago

README.md

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.