An open API service indexing awesome lists of open source software.

https://github.com/millipress/millirules

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.
https://github.com/millipress/millirules

actions conditions fluent-api php rules wordpress

Last synced: 6 days ago
JSON representation

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.

Awesome Lists containing this project

README

          

# MilliRules

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

```bash
composer require millipress/millirules
```

## Quick Start

```php
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](https://millipress.com/docs/millirules/) for detailed guides and API reference.

## License

GPL-2.0-or-later