marvinlabs/laravel-luhn
A Laravel package that adds Luhn algorithm validation for credit card numbers, IMEI codes, and other checksum-verified identifiers. It provides a ready-to-use validation rule and helper methods for quick integration into forms, APIs, and custom validation workflows.
composer require <vendor>/<package>, then confirm the service provider is auto-discovered (php artisan about or php artisan package:discover). Laravel 13 support landed in v1.0.14 — pin ^1.0.14 if the app is on Laravel 13, and don't rely on ^1.0 resolving to a compatible version from a stale lock file.php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider" (add --tag=config / --tag=migrations to be selective). Review the published config file top-to-bottom once — it is the primary documentation for defaults.php artisan test plus one manual request against that path before broadening usage.new. Resolve the package's main service from the container so config and any swapped implementations apply. If it ships a facade, use it for ergonomics but inject the underlying interface into constructors for testability.App\Contracts\... adapter around the package's API. When the package changes shape (or you swap it), you change one class instead of every call site. This matters more for packages that expose static helpers.config/services.php or a dedicated config file, seeded from env vars, and add the keys to .env.example. Cache config (php artisan config:cache) as part of your deploy check — packages that read env() directly at runtime break under cached config.$tries, backoff(), and failed() handling rather than in the request cycle. Register the job's failure path before enabling it for real users.shouldReceive helpers (or bind a mock of your adapter) in feature tests. Add one integration test that hits the real code path against a sandbox/stub endpoint; keep it out of the default suite.composer.lock, upgrade the package deliberately with composer update <vendor>/<package> --with-dependencies, and read the diff in vendor/ for anything touching config keys or method signatures before merging.illuminate/* constraint in composer.json: a version that adds 13 support may simultaneously drop 11 or 12. If you're mid-upgrade across environments, pin per-branch.composer require fails with "conflicts with laravel/framework", it's usually the lock, not the constraint: composer update <vendor>/<package> rather than hand-editing composer.json.php artisan config:clear (and queue:restart for workers). Symptoms of a stale cache look like the package ignoring your settings entirely.--force only after diffing, otherwise you'll silently overwrite local edits to config or migrations. Keep a note in your repo of which published files were modified.bootstrap/providers.php and any dont-discover entry in composer.json before assuming a package bug.report() alone will lose the upstream payload.1.0.x line that ships a framework-compatibility bump is a good sign for maintenance; still, re-run your integration test after every bump, since patch releases can bundle untracked fixes.How can I help you explore Laravel packages today?