darkghosthunter/larapoke
Larapoke is a lightweight Laravel package that adds a simple health-check endpoint, letting uptime monitors and external services poke your application to confirm it is running. It offers minimal setup, a configurable route, and no unnecessary dependencies.
laragear/poke instead; it is advertised as feature-equivalent plus current Laravel support.composer why <vendor/package> and the composer.json constraint.grep -rn for the facade, helper functions, Blade directives, config keys and published asset tags.Pin before you plan. Immediately constrain the package to the exact current version (e.g. "5.1.1" or "~5.1.1") so a future tag can't change behavior under you while you migrate. Nothing about a superseded package will warn you at install time.
Strangler-fig migration. Introduce a thin application-level adapter (a service class or interface) that wraps every package call. Call sites depend on your abstraction, not on the package's facade or global helpers. Swapping the implementation to Poke then happens in one file instead of dozens.
// app/Support/Poke.php — your seam
final class Poke
{
public function handle(string $input): Result
{
return Result::fromPackage($input); // the only package call in the app
}
}
Characterization tests first. Write tests that lock in current behavior before porting anything. Run the same suite against the Poke implementation — that's how you find the behavioral deltas the release notes don't mention.
Migrate per feature, behind config. Don't run both packages side-by-side in the same boot cycle. They are likely to register same-named facades, service-provider bindings or helpers. Use a config flag to switch one feature at a time, and remove the old package's provider when its last consumer is gone.
CI guard. Add a scheduled job running composer outdated / composer audit and, more importantly, a Laravel-upgrade smoke test. Since the successor explicitly claims "latest Laravel support," your framework upgrade path now runs through Poke.
Record the decision. Put a one-paragraph ADR next to the pinned constraint: why this version, what's left to migrate, who owns it. The next developer will otherwise "helpfully" bump it.
composer require succeeds silently. The only signal is the README. Surface it in your audit tooling.config('...') and vendor:publish tags before you assume a drop-in swap.replace/conflict only at the end. Adding "replace" to composer.json prematurely will mask leftover usages that would otherwise fail loudly. Let the removal of the old dependency be the last commit.How can I help you explore Laravel packages today?