tangible / object
A WordPress tool suite for building data-driven interfaces with a clean extensible architecture.
dev-main
2026-06-04 17:16 UTC
Requires (Dev)
- phpunit/phpunit: ^9.6.34
- tangible/framework: dev-main
- yoast/phpunit-polyfills: ^2.0.5
- dev-main
- dev-renovate/major-phpunit-packages
- dev-settings-api
- dev-fix/maybe-redirect-page-scope
- dev-feature/configurable-notices
- dev-fix/global-redirect-overtaking
- dev-fix/field-renderer-initial-value
- dev-feature/nested-map-field-type
- dev-renovate/major-react-monorepo
- dev-renovate/all-minor-patch
- dev-fix/create-button-submit
- dev-fix/match-nonce-with-action
- dev-fix/field-registry-shared-types
- dev-fix/route-post-redirect
- dev-fix/get-request-params-according-to-method
- dev-renovate/node-24.x
This package is auto-updated.
Last update: 2026-06-05 05:38:22 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