PHPackages                             keshavjha/curdder - 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. [API Development](/categories/api)
4. /
5. keshavjha/curdder

ActiveLibrary[API Development](/categories/api)

keshavjha/curdder
=================

A PHP CRUD generator that inspects database tables or explicit specs and generates API and web CRUD scaffolds.

00PHP

Since Jun 30Pushed todayCompare

[ Source](https://github.com/kj6560/crudder)[ Packagist](https://packagist.org/packages/keshavjha/curdder)[ RSS](/packages/keshavjha-curdder/feed)WikiDiscussions main Synced today

READMEChangelog (7)DependenciesVersions (1)Used By (0)

Curdder
=======

[](#curdder)

Curdder is a lightweight PHP CRUD generator.

It can:

- inspect an existing database schema
- generate a CRUD-ready config for a Laravel app
- accept explicit table and foreign-key join instructions
- provide a Laravel wizard for selecting tables, joins, and creating tables

Install
-------

[](#install)

```
composer require curdder/curdder
```

Generate from a database
------------------------

[](#generate-from-a-database)

```
php vendor/bin/curdder generate \
  --dsn="mysql:host=127.0.0.1;dbname=app;charset=utf8mb4" \
  --user=root \
  --password=secret \
  --output=./storage/app \
  --mode=laravel
```

Limit tables
------------

[](#limit-tables)

```
php vendor/bin/curdder generate \
  --dsn="sqlite:/path/to/database.sqlite" \
  --table=users \
  --table=posts \
  --output=./storage/app
```

Explicit joins
--------------

[](#explicit-joins)

You can define joins when the database does not expose the relationship the way you want.

```
php vendor/bin/curdder generate \
  --dsn="mysql:host=127.0.0.1;dbname=app" \
  --join="posts.user_id=users.id:name" \
  --join="posts.category_id=categories.id:title"
```

Join rule format:

```
table.column=related_table.related_column:label_column

```

Spec file
---------

[](#spec-file)

Use a JSON or PHP spec file when you want to describe tables, labels, and relations in one place.

```
{
  "name": "Blog Admin",
  "tables": [
    "users",
    {
      "name": "posts",
      "label": "Posts",
      "search_columns": ["title", "slug"]
    }
  ],
  "relations": [
    {
      "table": "posts",
      "column": "user_id",
      "references": "users.id",
      "label_column": "name"
    }
  ]
}
```

Then run:

```
php vendor/bin/curdder generate \
  --dsn="mysql:host=127.0.0.1;dbname=app" \
  --spec=./crudder.json \
  --output=./storage/app
```

Use in Laravel
--------------

[](#use-in-laravel)

Install the package in your Laravel app and open:

- `http://localhost:2222/crudder`
- `http://localhost:2222/crudder/tables/create`

The package stores the generated config in `storage/app/crudder.php` by default.

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance65

Regular maintenance activity

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

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://www.gravatar.com/avatar/6b953ba86492d108d26262d75996679b6e50ac9a62b82bfb831976df60638852?d=identicon)[Keshav Jha](/maintainers/Keshav%20Jha)

---

Top Contributors

[![kj6560](https://avatars.githubusercontent.com/u/22166884?v=4)](https://github.com/kj6560 "kj6560 (9 commits)")

### Embed Badge

![Health badge](/badges/keshavjha-curdder/health.svg)

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

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35816.3M7](/packages/exsyst-swagger)[hubspot/api-client

Hubspot API client

24015.5M18](/packages/hubspot-api-client)[pocketmine/bedrock-protocol

An implementation of the Minecraft: Bedrock Edition protocol in PHP

172437.8k11](/packages/pocketmine-bedrock-protocol)[botman/driver-telegram

Telegram driver for BotMan

94452.6k6](/packages/botman-driver-telegram)

PHPackages © 2026

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