, (*1)
Hoa is a modular, extensible and structured set of PHP libraries.
Moreover, Hoa aims at being a bridge between industrial and research worlds., (*2)
Hoathis\SymfonyRulerBundle
Integrates Hoa\Ruler
in Symfony., (*3)
Installation
With Composer, to include this bundle into your
dependencies, you need to require
hoathis/symfony-ruler-bundle
:, (*4)
{
"require": {
"hoathis/symfony-ruler-bundle": "~0.0"
}
}
And add RulerBundle
to your AppKernel
:, (*5)
// 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., (*6)
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:, (*7)
, (*8)
Configuration reference
hoathis_symfony_ruler:
debug: %kernel.debug%
License
Hoa is under the New BSD License (BSD-3-Clause). Please, see
LICENSE
., (*9)