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

Laravel Eloquent Filter Laravel Package

abdrzakoxa/laravel-eloquent-filter

A Laravel package for adding reusable, query-string-driven filters to Eloquent models. Define filters once and apply them through simple request parameters to keep controllers clean and queries flexible.

View on GitHub
Deep Wiki
Context7

Getting Started

Release 1.1.0 is a compatibility update: it adds Laravel 9 support. The release notes do not document new APIs, features, deprecations, or breaking changes, so treat this as an initial assessment with a narrow confirmed compatibility signal.

Start by checking the package’s composer.json constraints before installing. Confirm that the package version you are installing allows laravel/framework:^9.0 and the PHP version required by Laravel 9. Then review the README and service provider to understand whether the package uses auto-discovery, facades, helpers, config publishing, migrations, or route registration.

Minimal first steps:

  1. Install the package with Composer using the version that includes this release.
  2. Run php artisan package:discover if auto-discovery is not already refreshed.
  3. Publish config or migrations only if the package documentation requires it.
  4. Resolve the package from Laravel’s container in a small controller, command, or job.
  5. Add one feature or integration test that exercises the package through Laravel’s normal bootstrapping.

A good first use case is a single application service or action class that wraps the package call. That gives you one place to validate behavior, handle exceptions, and later swap or upgrade the package without spreading direct calls across the codebase.

Implementation Patterns

Prefer dependency injection over facades or global helpers unless the package is explicitly designed around them. Inject the package’s service, client, or contract into your own application service, then call that service from controllers, jobs, commands, and listeners. This keeps package usage testable and keeps Laravel-version-specific integration details out of business logic.

Use a thin adapter when the package exposes a broad API:

  • Create one application-level service that owns package configuration.
  • Translate package exceptions into application exceptions or result objects.
  • Keep package DTOs or responses from leaking into controllers and views.
  • Add contract tests around the adapter so the rest of the app depends on your interface, not the package’s concrete classes.

For Laravel integration, verify how the package behaves in the contexts you actually use:

  • In HTTP requests, confirm container resolution and config loading.
  • In queued jobs, confirm serialization does not include non-serializable package objects.
  • In Artisan commands, confirm the package works outside a request lifecycle.
  • In tests, use Laravel’s test helpers and avoid mocking the framework boot process unless necessary.
  • If the package publishes migrations, run them in a fresh test database and include them in CI.

Pin the package version in composer.json and add Laravel 9 to your CI matrix only if the rest of your dependencies also support it. If the application is on Laravel 10 or newer, do not assume this release makes the package compatible with those versions; test explicitly or wait for a confirmed constraint.

Gotchas and Tips

Laravel 9 support is not the same as support for Laravel 10, 11, or 12. Check composer.json constraints and run composer why-not if installation fails. A package may allow Laravel 9 while still restricting PHP, Symfony components, or other dependencies in ways that affect your application.

Because the release note is limited, inspect the changelog and diff before upgrading. Look specifically for changes to service providers, config keys, published assets, namespaces, method signatures, and minimum PHP versions. A compatibility release can still include internal changes that affect edge cases.

Common Laravel package pitfalls:

  • Run php artisan config:clear and php artisan package:discover after upgrading, especially in local and CI environments.
  • If config is cached, environment changes will not take effect until the cache is rebuilt.
  • Be careful with vendor:publish --force; it can overwrite application config or migrations.
  • Do not rely on facades in long-running workers without verifying the package does not hold request-specific state.
  • If the package registers routes, commands, policies, or migrations, confirm they are not duplicated after package discovery or provider registration changes.
  • Prefer constructor injection in jobs and services; resolving from the container inside methods makes tests and upgrades harder.

For debugging, start with composer show, composer why-not laravel/framework, and php artisan about. Then isolate the package in a small test that boots Laravel, resolves the package service, and calls one documented method. If the package fails only in Laravel 9, compare its service provider registration and dependency constraints against Laravel 9’s package discovery and container behavior.

Treat this release as a supported floor for Laravel 9, not as a signal that the package is actively modernized. If your application is on a newer Laravel version, keep the package behind your own adapter and plan an explicit compatibility test before relying on it day-to-day.

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.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox