tangible / object
A WordPress tool suite for building data-driven interfaces with a clean extensible architecture.
Installs: 12
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 4
pkg:composer/tangible/object
Requires (Dev)
- phpunit/phpunit: ^9.6.34
- tangible/framework: dev-main
- yoast/phpunit-polyfills: ^2.0.5
This package is auto-updated.
Last update: 2026-02-02 18:08:29 UTC
README
A WordPress tool suite for building data-driven admin interfaces with a clean, layered architecture.
Quick Start
The easiest way to use Tangible Object is through the DataView API:
use Tangible\DataView\DataView; use Tangible\RequestHandler\Validators; add_action('admin_menu', function() { $view = new DataView([ 'slug' => 'contact_entry', 'label' => 'Contact Entry', 'fields' => [ 'name' => 'string', 'email' => 'email', 'message' => 'text', 'subscribe' => 'boolean', ], 'ui' => [ 'menu_label' => 'Contact Entries', 'icon' => 'dashicons-email', ], ]); $view->get_handler() ->add_validator('name', Validators::required()) ->add_validator('email', Validators::required()) ->add_validator('email', Validators::email()); $view->register(); });
This creates:
- A Custom Post Type for your data
- An admin menu page with list, create, and edit views
- Form handling with validation and sanitization
- Full CRUD operations
Features
- Declarative configuration - Define your data structure once, get forms and validation automatically
- Multiple storage backends - Custom Post Types, database tables, or WordPress options
- Flexible layouts - Sections, tabs, sidebars, and nested structures
- Built-in validation - Required fields, email, min/max, custom validators
- Lifecycle hooks - React to create, update, and delete operations
- Repeater fields - Manage collections of sub-items
- Multiple renderers - Plain HTML or rich Tangible Fields components
Architecture
For advanced customization, Tangible Object exposes four underlying layers:
- DataSet - Define field types and coercion rules
- EditorLayout - Compose the editor structure (sections, tabs, fields)
- Renderer - Generate HTML output from the layout
- RequestHandler - Handle CRUD operations with validation
Learn more about the architecture →
Documentation
Requirements
- PHP 8.0+
- WordPress 5.0+
License
MIT