Skip to content

shish/microcrud

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 

MicroCRUD

I kept re-implementing (badly) a bunch of code to do this stuff. Instead of implementing it badly a 10th time, I decided to put it into a self-contained library with the union of features.

Currently this uses FFS-PHP's PDO, but it wouldn't be too hard to use vanilla PDO if anybody requested that feature.

use \MicroCRUD\{Table, ActionColumn, TextColumn};

class MyTable extends Table {
    public function __construct($db) {
        parent::__construct($db);
        $this->set_columns([
            TextColumn("username", "Username"),
            TextColumn("email", "Email Address"),
            ActionColumn()
        ]);
    }
}

$t = MyTable($db);
print($t->table());
<table>
	<thead>
		[... titles and search fields ...]
	</thead>
	<tbody>
		[... contents of the table, in pages ...]
	</tbody>
	<tfoot>
		[... code to add a new entry ...]
	</tfoot>
</table>

Notes for anything that might be non-obvious

The InetColumn type supports exact matching for most databases, but with Postgres, it supports range matching (eg searching for "1.2.3.0/24" will return search results including "1.2.3.6"). It'd be nice to support this cross-database, but pragmatically, one person has asked for this feature, they are using postgres as a backend, and postgres makes this trivial :P

About

A tiny library for managing create / read / update / delete operations

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages