🌱 The next big step: Kirby 4 Beta Learn more
Skip to content

Core improvements

Support for UUIDs in URL helper

You can now pass a page UUID or a file UUID to the url() helper and it will be converted to the actual URL:

<?= url('page://abcd') ?>
<?= url('file://abcd') ?>

This will also work for other URL methods like. $field->toUrl(), Url:to(), etc.

Support for UUIDs in API calls

You can now use UUIDs in API calls to request pages and files. #4769

/api/pages/@$pageUUID

The UUIDs must be passed without scheme, but a prefixed @. I.e.:

// Nope
/api/pages/page://abcd

// Yes
/api/pages/@abcd

File routes can also handle file UUIDs for files and parents:

/api/pages/@$pageUUID/files/$filename
/api/pages/@$pageUUID/files/@$fileUUID

In addition to that there are new direct UUID file routes:

/api/files/@$fileUUID

More improvements

  • Extensions to add custom methods for structures and structure objects
  • New App::models() method that returns a generator for each model (site, files, pages and users) of the site
  • New File::blueprints() method that collects valid blueprints from the files sections and files fields of the parent model
  • Fields can now define 'hidden' => true (component notation) or ::isHidden(): bool (class-based) to make them non-rendering 
  • New File::changeTemplate() method
  • New file permissions for changeTemplate
  • New file.changeTemplate hooks
  • New Kirby\Email\Email::toArray() and Kirby\Email\Body::toArray() methods
  • New Kirby\Exception\AuthException class