v0.6.1

<p>A field's context (path, uuid, page, view, url) is passed apart from the options its author wrote.</p>

3 October 2026

Changed

  • App::resolveField($key, $value, $def, $context) takes the field's definition tuple (type, label, options) and a context array. The underscore keys that were mixed into the options (_key, _uuid, _path, _page, _view, _page_url) are now the context keys key, uuid, path, page, view and url.
  • FieldType::create() and App::fieldtype() take $context beside $options. Fieldtypes read the owning page and uuid from the context. FieldValue::$context replaces the viewOverrides argument and the $key property.
  • Field definitions resolve once, with no type-scoped lookup (fields/{type}/{key}).
  • Record::type(), templateRoot() and resolveTemplate() are gone. Each record implements template(), and a user's template comes from roles/{role}.
  • One markdown converter is shared by every markdown field. Building its CommonMark environment cost more than the conversion.
  • PHPStan passes with its stale ignores removed.

Comments

No comments yet. Be the first!

Loading form…