Skip to content

webspine 0.1.6

Choose a tag to compare

@harryneufeld harryneufeld released this 07 Oct 21:15
da94101

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).

Component API and lifecycle.