tangible / object
A WordPress tool suite for building data-driven interfaces with a clean extensible architecture.
v1.1.0
2026-08-14 14:33 UTC
Requires
- php: >=8.1
- symfony/yaml: ^6.4 || ^7.0
Requires (Dev)
- phpunit/phpunit: ^9.6.35
- tangible/framework: dev-main
- yoast/phpunit-polyfills: ^2.0.5
Suggests
- tangible/framework: Optional. Provides settings-page styling and framework integration; normally already loaded by other Tangible plugins in the WordPress environment.
Provides
None
Conflicts
None
Replaces
None
- dev-main
- v1.1.0
- v1.0.1
- v1.0.0
- dev-feat/list-query-filter-operators
- dev-feat/list-query
- dev-setup-packagist-releases
- dev-fix/custom-post-type-storage-slashes
- dev-refactor/fields-renderer-centralize-formatting
- dev-fix/fields-renderer-visibility-conditions
- dev-settings-api
- dev-fix/maybe-redirect-page-scope
- dev-fix/field-renderer-initial-value
- 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
This package is auto-updated.
Last update: 2026-09-15 11:57:59 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