Search by

ssmiff / entabula

ssmiff

Entabula, an entity-based admin panel, without any framework. Served by Laravel with ssmiff/entabula-laravel.

Package info

github.com/ssmiff/entabula

pkg:composer/ssmiff/entabula

Statistics

Installs: 6

Dependents: 2

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-10-03 20:51 UTC

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.