amjadiqbal/kiln
amjadiqbal/kiln is a Laravel/PHP package that provides a lightweight, framework-friendly utility for common development tasks. It installs via Composer and offers a simple API for quick integration into Laravel applications with minimal configuration.
kiln:status and kiln:config give you the data to decide whether to warm caches on deploy, whether validate_timestamps should be off in production, and whether your FPM pool is actually benefiting from OPcache at all.opcache_reset() endpoints that teams typically accumulate. Adopting it is a low-cost way to standardize that logic rather than letting each service invent its own.kiln:status (hit rate, memory, cached script count) is exactly the telemetry you want in a post-deploy smoke check or a "why is this app slow" runbook. It supports decisions about whether a latency regression is an OPcache problem or something else.kiln:config flagging risky combinations (e.g. validate_timestamps on in prod) turns an invisible ini setting into a reviewable artifact — useful for pre-launch checklists and security/config audits.Adopt when:
kiln:warm or the HTTP route fits cleanly.status and config are cheap wins for small teams.opcache_reset() script.Look elsewhere or skip when:
opcache_reset() semantics differ.kiln:status becomes redundant.For executives: This is a small, dependency-free package that removes a well-known class of production incidents — stale code and cold caches after a deploy — and replaces the bespoke shell scripts teams write to work around them. Cost is near zero, and it gives us a supported, authenticated way to tell our web workers to refresh their compiled code, plus a quick readout of whether the PHP opcode cache is actually doing its job. It's operational hygiene, not a new platform.
For engineering: OPcache lives in each FPM worker pool's shared memory, so php artisan from the CLI can't touch it — Kiln solves that with a signed, disabled-by-default HTTP route that executes inside a real worker. Around that it gives us warm (compile without executing, so warming doesn't trigger side effects), clear, status, and a config linter that flags risky settings like validate_timestamps=On in prod. No Guzzle, no new client dependency, and the route is opt-in. It slots into a post-deploy hook or a scheduled job and replaces the one-off opcache_reset() scripts we keep rewriting. Caveats worth naming up front: it's a v1.0.0 with no prior track record, the signed-route threat model needs a review before we enable it in production, and it's FPM-centric — teams on Swoole/RoadRunner get much less out of it. Recommended next step: pilot on one service, wire kiln:config and kiln:status into the deploy checklist, and evaluate the route behind our existing auth perimeter.
How can I help you explore Laravel packages today?