Shared utility classes for Kirby Tools plugins. This package provides common model and field resolution logic used across multiple plugins to avoid ambiguous class resolution when multiple plugins are installed together.
- Kirby 6
- PHP 8.3+
Kirby 4 and 5 plugins stay on ^0.1.
composer require johannschopplich/kirby-tools-utilsAll classes live in the KirbyTools\Utils namespace:
use KirbyTools\Utils\FieldResolver;Resolves Kirby CMS models from different identifier formats:
resolveFromId: Resolves a model from a model ID (e.g.,site,page-id,file-id)resolveFromPath: Resolves a model from a Panel view path (e.g.,site,pages/xxx,pages/xxx/files/yyy)
Resolves blueprint fields from Kirby models:
resolveModelFields: Creates a Kirby Form from the model's blueprint fields and returns the exported field properties (excludingtitle,slug, and field values), keyed by the lowercased field name. Custom blueprint keys such ascopilotare not exported; read them from$model->blueprint()->fields(), whose keys keep the field name's casing
Normalizes blueprint field definitions to their base types:
resolveBaseType: Resolves a custom field type to its base type: the type of the nearest core field class among its registered class and that class's parents. Core types,markdown, and types Kirby can't resolve are returned as isnormalizeFields: Normalizes a fields array, recursing into nested fields andfieldsets[*].tabs[*].fields
AGPL License © 2026-PRESENT Johann Schopplich