ssmiff / entabula
Entabula, an entity-based admin panel, without any framework. Served by Laravel with ssmiff/entabula-laravel.
Requires
- php: ^8.4
- brick/money: ^0.10
Requires (Dev)
- phpstan/phpstan: ^2.2
- phpunit/phpunit: ^12.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-03 21:14:12 UTC
README
ssmiff/entabula is the core of Entabula, an entity-based admin panel, written without any framework. You describe
your entities (their fields, relations, filters, actions and cards) as PHP classes, and Entabula serves them as an API
for its Vue client, @ssmiff/entabula.
A framework package serves it, so install that rather than this one on its own:
- Laravel:
ssmiff/entabula-laravel, with Eloquent backed entities. - Mezzio or any PSR-15 application:
ssmiff/entabula-mezzio, with Doctrine DBAL backed entities. - Anything else: implement its contracts (a resolver and a validator to start with), as the docs describe.
use Ssmiff\Entabula\Definitions\AbstractEntity; use Ssmiff\Entabula\Definitions\Fields\IdField; use Ssmiff\Entabula\Definitions\Fields\TextField; class ProjectEntity extends AbstractEntity { public function resolver(): EntityResolver { return new EloquentResolver(Project::class); } protected function fields(): array { return [ new IdField(), new TextField('name')->setSearchable()->setSortable()->rules(['required', 'max:255']), ]; } }
Requires PHP 8.4 or newer.
Documentation
The guides, from a quick start to every field, relation, action and contract, are in
the Entabula demo's docs.
Developing
This package is developed inside ssmiff/entabula-demo, as a git submodule; its README says how to work on it there. On its own:
composer install vendor/bin/phpunit vendor/bin/phpstan analyse --memory-limit=1G
Releases are tags, e.g. v1.2.0, which Packagist publishes.