apility / rule-builder
Installs: 4 593
Dependents: 3
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- illuminate/support: ^7.0 || ^8.0 || ^9.0
- ramsey/uuid: ^4.0
Requires (Dev)
- larapack/dd: ^1.1
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-10-31 00:17:51 UTC
README
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 }