RuleEvaluatorRegistry
Registers and resolves role rule evaluator drivers used by role_rules.driver.
Namespace
JobMetric\Rolix\Support\RuleEvaluatorRegistry
Facade
use JobMetric\Rolix\Facades\RuleEvaluatorRegistry;
Boot
Built-in evaluators are registered in afterRegisterPackage (time, weekday, user_status, ip_range, location, env, role_count, quota, custom_expression).
Methods
register()
public function register(string $class): self
$class must implement RuleEvaluatorContract. The registry resolves app($class) and indexes by $instance->name().
RuleEvaluatorRegistry::register(BusinessHoursEvaluator::class);
Throws: InvalidArgumentException when the class does not implement the contract.
unregister()
public function unregister(string $name): self
has() / get() / resolveClass()
RuleEvaluatorRegistry::has('time');
$driver = RuleEvaluatorRegistry::get('time'); // ?RuleEvaluatorContract
$class = RuleEvaluatorRegistry::resolveClass('time'); // ?class-string
get() / resolveClass() also accept an FQCN that implements the contract.
all() / values()
RuleEvaluatorRegistry::all(); // name => class-string
RuleEvaluatorRegistry::values(); // list of names
formFor()
public function formFor(string $nameOrClass): ?FormBuilder
Returns the evaluator's settings form builder when available (for admin UIs).
clear()
Clears the registry (tests).
Contract Reminder
Evaluators expose:
name(): string— stable driver key stored in DBevaluate(array $rule, mixed $context): boolform(): FormBuilder/fields()— UI metadata
Related Documentation
- Rule Evaluators Overview
- Role Service —
syncRules()