PHPackages                             testprocessmaker/pmql - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. testprocessmaker/pmql

ActiveProject[Database &amp; ORM](/categories/database)

testprocessmaker/pmql
=====================

An Eloquent trait that provides the pmql scope to allow converting simple sql criteria clauses to Eloquent

00[1 PRs](https://github.com/TienDuong2501/test-pmql-package/pulls)PHPCI failing

Since May 1Pushed 4y ago1 watchersCompare

[ Source](https://github.com/TienDuong2501/test-pmql-package)[ Packagist](https://packagist.org/packages/testprocessmaker/pmql)[ RSS](/packages/testprocessmaker-pmql/feed)WikiDiscussions master Synced 6d ago

READMEChangelogDependenciesVersions (2)Used By (0)

pmql
====

[](#pmql)

ProcessMaker Query Language

Support for simple SQL-like expressions and converting to Laravel Eloquent. Exposes a Eloquent scope 'pmql' to pass in clauses.

Table of Contents
-----------------

[](#table-of-contents)

- [Simple Usage](#simple-usage)
- [Operators](#operators)
    - [Comparison Operators](#comparison-operators)
    - [Logical Operators](#logical-operators)
- [Case Sensitivity](#case-sensitivity)
- [Casting](#casting)
- [Dates](#dates)
- [Syntax Examples](#syntax-examples)
    - [Sample Dataset](#sample-dataset)
    - [Basic Syntax](#basic-syntax)
    - [And](#and)
    - [Or](#or)
    - [Grouping](#grouping)
    - [Numeric Comparison](#numeric-comparison)
    - [Casting To Number](#casting-to-number)
    - [Date Comparison](#date-comparison)
    - [Dynamic Date Comparison](#dynamic-date-comparison)
    - [Pattern Matching](#pattern-matching)
        - [Start of String](#start-of-string)
        - [Exact Pattern](#exact-pattern)
        - [End of String](#end-of-string)
        - [String Contains](#string-contains)
        - [Ignore Case](#ignore-case)
- [Custom Callbacks](#custom-callbacks)

Simple Usage
------------

[](#simple-usage)

```
$results = Record::where('id', 'pmql('username = "FOOBAR" AND age < 25', function($expression) {
    // This example will ensure checking for lowercase usernames as thats how it stored in our database
    if($expression->field->field() == 'username') {
        // If you want to modify the query, you need to return an anonymous function that will add your additional criteria
        return function($query) use($expression) {
                $query->where(DB::raw('LOWER(username)', $expression->operator, strtolower($expression->value->value()));
        }
    }
    // Let default behavior win for non username fields
    return false;
})->get();
```

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/32046959?v=4)[tienduong2501](/maintainers/tienduong2501)[@TienDuong2501](https://github.com/TienDuong2501)

---

Top Contributors

[![TienDuong2501](https://avatars.githubusercontent.com/u/32046959?v=4)](https://github.com/TienDuong2501 "TienDuong2501 (1 commits)")

### Embed Badge

![Health badge](/badges/testprocessmaker-pmql/health.svg)

```
[![Health](https://phpackages.com/badges/testprocessmaker-pmql/health.svg)](https://phpackages.com/packages/testprocessmaker-pmql)
```

###  Alternatives

[doctrine/orm

Object-Relational-Mapper for PHP

10.2k285.3M6.2k](/packages/doctrine-orm)[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k115.1M102](/packages/jdorn-sql-formatter)[illuminate/database

The Illuminate Database package.

2.8k52.4M9.4k](/packages/illuminate-database)[mongodb/mongodb

MongoDB driver library

1.6k64.0M546](/packages/mongodb-mongodb)[ramsey/uuid-doctrine

Use ramsey/uuid as a Doctrine field type.

90340.3M211](/packages/ramsey-uuid-doctrine)[reliese/laravel

Reliese Components for Laravel Framework code generation.

1.7k3.4M16](/packages/reliese-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
