Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravelrave Laravel Package

kingflamez/laravelrave

kingflamez/laravelrave is a Laravel package that simplifies integrating Flutterwave’s Rave payment gateway. It helps you initiate payments, verify transactions, and handle webhooks through a clean, configurable API.

View on GitHub
Deep Wiki
Context7

Getting Started

  • Confirm the compatibility bump first. v4.2.1's only listed change is Laravel 10 support, so treat it as a compatibility release rather than a feature release. Verify your composer.json constraints allow it ("illuminate/*": "^10.0" resolves cleanly) and that composer update <vendor>/<package> pulls 4.2.1 without also dragging Laravel 9-only transitive deps forward.
  • Check the service provider registration. With Laravel 10's package auto-discovery, the provider should register via extra.laravel.providers in the package's composer.json. If you have a manual entry in config/app.php from an older install, remove it to avoid double registration.
  • Publish and diff config. Run the package's publish command (typically php artisan vendor:publish --tag=<package>-config) and diff the new stub against your existing config/<package>.php. A major-version-era package picking up L10 support often also refreshes the config stub; silently keeping a stale config is the usual source of "it works in a fresh app but not ours."
  • Look here first when reading the code: the service provider (bindings, singletons, deferred providers), the config file (defaults and env keys), and any published migrations. Those three tell you more about day-to-day behaviour than the README.
  • First use case: wire the package into a single, low-risk path — one controller or one queued job — and exercise it end-to-end under Laravel 10 before touching anything queued, scheduled, or event-driven. Confirm php artisan about shows the expected Laravel version and that the package's own artisan commands appear in php artisan list.

Implementation Patterns

  • Resolve from the container, don't new it up. The package's main entry point is almost certainly bound as a singleton. Inject it into constructors or use app(...) / the facade if one is published, so config and any shared state (HTTP client, cache store, connection) stay consistent across the request.
  • Wrap third-party calls behind your own thin adapter. Define a small interface in your app (App\Contracts\<Thing>) and bind the package's class to it in a service provider. When the next major lands you change one binding rather than every call site — this is the cheapest insurance you can buy against a package whose changelog is this terse.
  • Configuration over constructor arguments. Anything the package exposes in config should be set via config/<package>.php reading env(), with the env() call living only in the config file — not at call sites. That keeps config:cache in production from silently returning null.
  • Queue and schedule integration. If the package dispatches jobs or exposes scheduled work, register the schedule in routes/console.php (Laravel 10 style) or Kernel::schedule() depending on your skeleton, and prefer onOneServer() + withoutOverlapping() for anything that talks to an external API. Test under queue:work --once before letting a worker loose.
  • Feature-flag the rollout. Put the package behind a config toggle (<package>.enabled) read at the boundary, so you can disable it in production without a deploy if the L10 upgrade surfaces a behavioural difference.
  • Testing pattern. In phpunit.xml, stub the package's env keys with safe test values; use Http::fake() / Queue::fake() at the boundary rather than mocking the package's internals, which are the part most likely to shift between minor versions.
  • Upgrade workflow: branch → composer update <vendor>/<package> --with-dependencies → run the package's own test suite if it ships one → run yours → smoke-test one real request per integration point → tag.

Gotchas and Tips

  • "Laravel 10 support" in a patch release is a compatibility claim, not a guarantee of no behaviour change. Laravel 10 changed several defaults (PHP 8.1 minimum, deprecations around Doctrine\DBAL for column changes, refreshed HasMany/Model internals). Pin the exact version in composer.json ("4.2.1" or "~4.2.1") and read the diff between the previous tag and 4.2.1 on the repo before shipping — with release notes this thin, the diff is the changelog.
  • PHP version floor. Laravel 10 requires PHP 8.1+. If CI runs 8.0 or 8.1 with an older extension set, you'll get failures that look like package bugs. Check php -v in every pipeline stage, including the Docker image used for deploy.
  • Stale config after upgrade. If the package added or renamed a config key, config:cache will bake in the old shape. Always php artisan config:clear && php artisan config:cache as part of the deploy, and diff the published stub as noted above.
  • Auto-discovery vs. cached manifests. If the package's commands or bindings "disappear" after deploy, it's usually bootstrap/cache/packages.php being stale or the deploy user lacking write permission to bootstrap/cache. php artisan package:discover regenerates it.
  • Migration ordering. Published migrations may now assume newer Laravel schema APIs. If you have long-lived tables, run php artisan migrate --pretend first on a staging dump rather than discovering index/column issues in production.
  • Debugging: enable the package's own log channel via config rather than dd() inside vendor code; if you must instrument, use a temporary Log::channel() or Telescope/Xdebug so a composer update doesn't wipe your debugging.
  • Extension points to prefer: container bindings, published config, and any documented events the package dispatches. Subclassing or copying vendor classes into app/ is the trap — it survives exactly one upgrade.
  • Deprecation watch. Laravel 10 emits deprecation notices for patterns packages commonly still use (Str helpers, dynamic properties on models, $dates). Run your suite with error_reporting(E_ALL) in staging and grep the log; these become hard errors in Laravel 11.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core