Skip to content

MilliPress/MilliRules

Repository files navigation

MilliRules

CI Discord GitHub Discussions

A flexible, framework-agnostic rule evaluation engine for PHP 7.4+.

Overview

MilliRules is a powerful rule engine that allows you to define complex conditional logic using a fluent API. It's designed to be framework-agnostic while providing specialized support for HTTP and WordPress environments.

Features

  • Fluent API: Build complex rules with an intuitive, chainable syntax
  • Framework Agnostic: Core engine works with any PHP application
  • Lazy-Loaded Context: On-demand loading of context data for optimal performance
  • HTTP Support: Built-in conditions for request handling
  • WordPress Integration: Native support for WordPress queries and context
  • Extensible: Easy to add custom conditions and actions
  • Flexible Naming: Use snake_case or camelCase — when_all() and whenAll() both work
  • PHP 7.4+ Compatible: Works with PHP 7.4+, PHP 8.0+ recommended

Installation

composer require millipress/millirules

Quick Start

use MilliRules\Rules;

// Simple HTTP rule
Rules::create('api_check')
    ->when()
        ->request_url('/api/*')
    ->then()
        ->custom( 'auth-check', function($context) {
            // Your action here
        })
    ->register();

Documentation

See the full documentation for detailed guides and API reference.

Community

The Discord server and GitHub Discussions are places to swap setups, trade tips, and share your ideas for where MilliRules should head next. We're listening.

For bug reports, open a GitHub issue.

License

GPL-2.0-or-later

About

A declarative rule engine for PHP that turns complex conditional logic into readable "when-then" rules. Features a fluent builder API, lazy-loaded context for performance, smart operator inference, and works seamlessly in pure PHP or WordPress.

Topics

Resources

License

Stars

16 stars

Watchers

0 watching

Forks

Contributors

Languages