johannschopplich / kirby-tools-utils
Shared utility classes for Kirby Tools plugins
1.0.0-beta.1
2026-10-27 15:53 UTC
Requires
- php: >=8.3
Requires (Dev)
- getkirby/cms: ^6
- phpunit/phpunit: ^12
Suggests
None
Provides
None
Conflicts
- getkirby/cms: <6
Replaces
None
This package is auto-updated.
Last update: 2026-11-01 09:36:55 UTC
README
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.
Requirements
- Kirby 6
- PHP 8.3+
Kirby 4 and 5 plugins stay on ^0.1.
Installation
composer require johannschopplich/kirby-tools-utils
All classes live in the KirbyTools\Utils namespace:
use KirbyTools\Utils\FieldResolver;
Classes
ModelResolver
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)
FieldResolver
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
FieldNormalizer
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
Used By
License
AGPL License © 2026-PRESENT Johann Schopplich