apility/rule-builder

5,631 1
Install
composer require apility/rule-builder
Latest Version:v1.5.2
License:MIT
Last Updated:Aug 25, 2025
Links: GitHub  ·  Packagist
Maintainer: thomas-alrek

Rule Builder PHP

Installation

composer require apility/rule-builder

Example usage

<?php

use Carbon\Carbon;
use Netflex\RuleBuilder\DateRules\DateRule;

// Example of a rule that matches any dates in the year 2021 except the 17th of May, 24th of December and the month of June.
$rule = DateRule::parse([
    'type' => 'group',
    'count' => 'all',
    'children' => [
        [
            'type' => 'group',
            'count' => 'any',
            'children' => [
                [
                    'type' => 'dateRange',
                    'from' => '2021-01-01',
                    'to' => '2022-01-01'
                ]
            ]
        ],
        [
            'type' => 'not',
            'child' => [
                'type' => 'group',
                'count' => 'any',
                'children' => [
                    [
                        'name' => '17th of May',
                        'type' => 'dateRange',
                        'from' => '2021-05-17',
                        'to' => '2021-05-18'
                    ]
                    [
                        'name' => 'Christmas',
                        'type' => 'dateRange',
                        'from' => '2021-12-24',
                        'to' => '2021-12-25'
                    ],
                    [
                        'name' => 'Closed for the summer',
                        'type' => 'dateRange',
                        'from' => '2021-06-01',
                        'to' => '2021-07-01'
                    ]
                ]
            ]
        ]
    ]
]);

$validated = $rule->validate(Carbon::parse('2021-11-20'));

if ($validated) {
    // The rule matched the given date
}
<?php

use Carbon\Carbon;
use Netflex\RuleBuilder\DateRules\DateRule;

// Example of a rule that matches every saturday and sunday in the month of September in the year 2021.
$rule = DateRule::parse([
    'type' => 'group',
    'count' => 'all',
    'children' => [
        [
            'type' => 'dateRange',
            'from' => '2021-09-01',
            'to' => '2022-10-01'
        ],
        [
            'type' => 'dayOfWeek',
            'days' => [6, 0]
        ]
    ]
]);

$validated = $rule->validate(Carbon::parse('2021-09-22'));

if ($validated) {
    // The rule matched the given date
}

Related Packages

gabrieloliverio/laravel5-generators

Database metadata-based generators for Laravel 5

1
erirk/paypalpayment

laravel-paypalpayment is simple package help you process direct credit card paym...

0
doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

631,580,251 9,707
laravel/framework

The Laravel Framework.

580,311,802 34,925
laravel/tinker

Powerful REPL for the Laravel framework.

489,754,436 7,444