Repository navigation
webspine 0.1.6
Components can now render their own children through a small $ui presentation helper, without passing the Theme object through every props array. $ui->component() renders children, $ui->id() returns the active theme identity, and $ui->assetUrl() builds shared content-versioned asset URLs. Pages and layouts receive the same helper; component props remain explicit and scopes remain isolated.
- Active theme resolution and validation are cached within a rendering lifecycle, avoiding repeated Settings queries and manifest reads for nested components.
- Requests and health probes refresh automatically. Manual rendering after direct Settings or theme/asset file changes uses
$app->theme->refresh(). - Nested components restore output buffers on failure; a 64-component nesting limit catches runaway recursion.
- The Starter action link renders its own icon, and its layout uses shared versioned asset URLs.
Compatibility: existing props-only components continue to work. $ui is newly reserved in page/layout scope; colliding data remains accessible via $data['ui']. Customized themes/components remain site-owned and are preserved by core updates. Supported asset formats, PHP asset delivery, cache policy and warning handling are unchanged.
Validation: Linux CI passed 112 framework checks, 14 Starter checks and 614 hosting/form checks; post-merge hosting CI passed. Windows tests, PHP syntax checks, desktop and 320px previews also passed. Release ZIP inventories, per-file hashes and SHA-256 sidecars were verified; fresh packaged installation/health and core updater staging passed.
New website: webspine-0.1.6.zip.
Existing website: webspine-core-0.1.6.zip, applied through the CLI updater on a local copy after a verified backup. Never overlay the full Starter onto a customized site. SHA-256 sidecars check integrity, not authenticity.
PR #64 test-build users: stable 0.1.6 contains identical source to v0.1.6-pr64.1. Both report internal version 0.1.6, so the updater will not apply this stable ZIP over that test build. Retain or recreate the original test copy; no code changes distinguish the two builds.
Requires PHP 8.3+; framework API 1. Changes: #64 (closes #52 and #53).