beebmx/kirby-db
Kirby DB brings database support to Kirby CMS: a query builder, Eloquent-style models, migrations, and relationships. Connect MySQL, SQLite, or Postgres and use familiar Laravel-like patterns to manage data in your Kirby site.
The 4.0.1 release is functionally a maintenance release, but it carries two changes that affect your environment before you write a single line of code: the minimum PHP version is now 8.2 (8.1 support dropped), and the package now declares support for Kirby 5.x alongside its existing targets. Treat the upgrade as a minor migration rather than a drop-in patch.
php -v and confirm >= 8.2 locally (Herd/Valet/Sail images included), then composer why-not <vendor>/<package> 4.0.1 to see what is pinning you to 4.0.0. If your composer.json has "php": "^8.1" or your Docker base image is php:8.1-fpm, bump both — otherwise composer update will silently keep you on 4.0.0.composer.json (require, require-dev, suggest) to see exactly which Kirby versions are allowed and whether the Kirby dependency is ^4.0 || ^5.0 or ^5.0 only. That single line tells you whether 4.0.1 is safe for an existing Kirby 4 site.tests/ directory first. The switch from PHPUnit to Pest means the test suite is now the most readable documentation of the public API — Pest's it('...') descriptions and expect() chains read as prose. Start there for the first use case rather than the README.If you are maintaining a Laravel application that talks to a Kirby-powered site, this package is still a Kirby-side dependency — the Laravel work is limited to the HTTP/API boundary and your CI pipeline.
"vendor/package": "4.0.1" (exact) while you validate, then move to "^4.0" once green. Because the PHP 8.1 drop landed in a patch release, floating constraints (^4.0 is fine; * is not) will surprise you later.8.1 from shivammathur/setup-php matrices, set php-version: ['8.2', '8.3', '8.4'], and re-run the matrix against PHP 8.2 minimum. A green build on 8.1-only is now meaningless.FROM php:8.2-cli (or 8.3) in your dev/staging Dockerfile, and update docker-compose.yml, Sail config, Forge/Envoyer recipes, and any Lambda/Vapor runtime in lockstep. This is the most common source of "works locally, fails on deploy" in this kind of upgrade.pestphp/pest in require-dev, remove phpunit/phpunit from direct requirements, keep phpunit.xml only if you still need it for coverage config, and use it()/expect() in place of test* methods.Http client with retry() and a cached response layer — do not try to share the plugin's internals across runtimes.4.0.x should be non-breaking by convention. Audit whether your lockfile is holding you back, and audit whether any of your consumers declare php: ^8.1 — Composer's platform check will fail at install time with a your requirements could not be resolved error, not a friendly warning.composer show --tree or the package's require block. If it's Kirby 5-only, existing Kirby 4 sites are stuck on 4.0.0 and you now maintain two versions — plan that explicitly.phpunit --filter still works, but stack traces, --parallel behaviour, and the dataset API differ. If you have custom TestCase bootstrapping or PHPUnit extensions, they may need rewriting as Pest uses() / beforeEach() blocks.actions/checkout, setup-php cache keys, and any matrix.php-versions you copied — stale matrices are the number-one cause of red builds after a release like this.composer why-not → PHP binary actually in use (php -v inside the container, not on the host) → Kirby version resolved → plugin boot → test suite. Skipping step 2 wastes hours chasing a mismatch that has nothing to do with the code.How can I help you explore Laravel packages today?