v0.19.0
26 October 2026
Field types are stateless and field rendering moves to templates beside each field and type, with built-in render templates and five new reusable fields.
Added
F::send()sends a file as the response.- Built-in fields
title,body,summary,coverandpublished_at, each with a render template. render.lattefor themarkdown,code,image,file,url,email,datetime,list,checkboxes,pages,relation,object,repeater,blocksandstackfield types.
Changed
FieldTypeis stateless, built once per class asnew $class($app).encode(FieldValue $field, mixed $raw),decode(FieldValue $field),validate(FieldValue $field, mixed $raw),empty(FieldValue $field),preview(FieldValue $field),indexValues(FieldValue $field),indexChildren(FieldValue $field),indexText(FieldValue $field)andchild(FieldValue $field, string $key)read the value from$field;FieldType::create()is gone. See Upgrading.- A field's render template is
fields/{name}/render.lattebeside its definition, and a type's isfieldtypes/{type}/render.latte, replacingsite/views/fields/{name}.latteandsite/views/fields/{type}.latte.site/views/fields/{view}/{name}.lattestill wins first. See Upgrading. Dt::parse()accepts anintUnix timestamp.LatteExtensionholds the app readonly.{partial}and{fragment}share their wrapper throughWrapsPartial.
Removed
FieldType::__get(). A container's sub-fields are read throughchild(FieldValue $field, string $key).
Comments
No comments yet. Be the first!
Loading form…