PHPackages                             detain/crud - 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. detain/crud

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

detain/crud
===========

Advanced CRUD Class

v2.0.0(6y ago)5826↓100%2LGPL-2.1-onlyPHPPHP &gt;=5.4.0

Since Jul 20Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/interserver/crud)[ Packagist](https://packagist.org/packages/detain/crud)[ RSS](/packages/detain-crud/feed)WikiDiscussions bs3 Synced 1mo ago

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

Advanced CRUD Class
===================

[](#advanced-crud-class)

.. because designing a webpage should be as easy as writing an sql query

its got a very customizable output and customizable field handling , but aiming for it to automatically generate an optimal page w/out the need for customizing in most cases

i figure most all pages in my are based around a single query/table , each page just having basically a different query, but essentially all doing the same basic things with it, building a list of records, a form to add or edit them, or simply display a record, or a page might be a group of several of these things...

so my goal w this is to automatically generate as much as possible for each page using only the given query, and where customized handling for something is needed make that process as simple as possible as well, so pages can be reworked and code reduced to just the fewest bits of information unique to that page and get improved layouts+validation/form-handling as a side effect

CRUD classes themselves are very popular and used in most all big frameworks, but from extensive research (over the past few years of trying to decide which one to use) they all seem rather hard to implement or at least a lot of code just to setup a page using it , my approach is i think the ideal way to do it taking the best of what ive found in other CRUD classes but requiring less code to set it up.

since the HTML part is all handled within the templates and the class generates things like validations and field information, its easy to setup several alternate layouts and easily choose an alternate one when you don't want to use the default layout. it also makes it easy to setup things like alternate interfaces such as a CLI or ANSI Terminal GUI, Windows/OS Native programs, and even various API interfaces with relative ease only having to add the code for basic components of each once. Although I do have several table alternate layouts already, I have no plans to setup additional templates until everything else with it is working and getting widely implemented.

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance55

Moderate activity, may be stable

Popularity21

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 89.4% 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 ~834 days

Total

2

Last Release

2382d ago

Major Versions

v1.0.0 → v2.0.02019-11-01

### Community

Maintainers

![](https://www.gravatar.com/avatar/b1036e0717211b8030b83cbe729e8ba6ba442fdbd5285fb97a39d7dcfe339342?d=identicon)[detain](/maintainers/detain)

---

Top Contributors

[![detain](https://avatars.githubusercontent.com/u/1364504?v=4)](https://github.com/detain "detain (522 commits)")[![kumar-interserver](https://avatars.githubusercontent.com/u/29834101?v=4)](https://github.com/kumar-interserver "kumar-interserver (61 commits)")[![mend-bolt-for-github[bot]](https://avatars.githubusercontent.com/in/16809?v=4)](https://github.com/mend-bolt-for-github[bot] "mend-bolt-for-github[bot] (1 commits)")

---

Tags

crudabstractiondatabasesqllistdbcrudbootstrapdeleteaddcreateedit

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/detain-crud/health.svg)

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

###  Alternatives

[aura/sqlquery

Object-oriented query builders for MySQL, Postgres, SQLite, and SQLServer; can be used with any database connection library.

4572.9M34](/packages/aura-sqlquery)[ezsql/ezsql

Advance database access library. Make interacting with a database ridiculously easy. An universal interchangeable CRUD system.

86946.7k](/packages/ezsql-ezsql)[jv2222/ezsql

Advance database access library. Make interacting with a database ridiculously easy. An universal interchangeable CRUD system.

87311.3k2](/packages/jv2222-ezsql)[atlas/query

Object-oriented query builders and performers for MySQL, Postgres, SQLite, and SQLServer.

41249.0k7](/packages/atlas-query)[rah/danpu

Zero-dependency MySQL dump library for easily exporting and importing databases

64401.8k10](/packages/rah-danpu)

PHPackages © 2026

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