PHPackages                             jdz/adminkit - 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. [Admin Panels](/categories/admin)
4. /
5. jdz/adminkit

ActiveLibrary[Admin Panels](/categories/admin)

jdz/adminkit
============

Framework-agnostic admin list/item orchestration primitives: pagination, filter-state resolution, ordering validation, query building, uniqueness and data sanitization

1.1.0(1mo ago)04MITPHPPHP &gt;=8.2

Since Jul 9Pushed 1mo agoCompare

[ Source](https://github.com/joffreydemetz/adminkit)[ Packagist](https://packagist.org/packages/jdz/adminkit)[ Docs](https://jdz.joffreydemetz.com/adminkit)[ RSS](/packages/jdz-adminkit/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (2)Dependencies (3)Versions (3)Used By (0)

JDZ AdminKit
============

[](#jdz-adminkit)

Framework-agnostic primitives for building admin list/edit screens. No HTTP, session, view or ORM coupling — you feed each helper plain values from whatever framework you run (Slim, Symfony, …) and get back a computed result.

Built on [`jdz/database`](https://jdz.joffreydemetz.com/database) (query building) and [`jdz/form`](https://jdz.joffreydemetz.com/form) (form data).

What's in the box
-----------------

[](#whats-in-the-box)

ClassPurpose`List\Paginator`Clamp a requested page against a total and derive the SQL offset`List\FilterStateResolver`Merge defaults &lt; stored &lt; request &lt; forced filter state; inject token/page/ordering`List\OrderingValidator`Decide whether drag-and-drop reordering is allowed for the current list`List\SearchTerm`Split a `CODE:text` search string`Query\AdminQuery``SelectQuery` with category / version / keyword select+filter helpers`Item\UniquenessChecker`"is this column value already taken" against a `DatabaseInterface``Item\DataSanitizer`Coerce posted form values to match their column definitions before saveExample
-------

[](#example)

```
use JDZ\AdminKit\List\Paginator;

$p = new Paginator(total: 128, page: 3, limit: 20);
$p->start;    // 40   (SQL offset)
$p->nbPages;  // 7
$p->page;     // 3    (clamped if out of range)
```

Scope
-----

[](#scope)

Orchestration only — data access, HTTP, view rendering and the admin UI value objects ([`jdz/adminui`](https://jdz.joffreydemetz.com/adminui)) stay in the consuming framework. Row assembly and view-payload building are intentionally NOT part of this package: they are tightly coupled to per-app rendering hooks and belong with the consumer.

Tests
-----

[](#tests)

```
composer test

```

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance90

Actively maintained with recent releases

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 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.

###  Release Activity

Cadence

Every ~1 days

Total

2

Last Release

47d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5e83e3701566e43438525ed14578487e732b849d152b5071aa1613a0dad96913?d=identicon)[jdz](/maintainers/jdz)

---

Top Contributors

[![joffreydemetz](https://avatars.githubusercontent.com/u/15113527?v=4)](https://github.com/joffreydemetz "joffreydemetz (2 commits)")

---

Tags

paginationfilterlistadminJDZ

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/jdz-adminkit/health.svg)

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

PHPackages © 2026

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