fab2s/searchable
A lightweight Laravel package that adds a reusable Searchable trait to Eloquent models, enabling flexible keyword searches across chosen columns without external search engines. Configure searchable fields and get relevant, multi-word query results with minimal setup.
Architecture fit
fab2s/Searchable is an Eloquent-level trait package: search behaviour is attached directly to models, so it composes with the existing Laravel architecture rather than introducing a new service or datastore.Integration feasibility
composer.json require.php). There are no API, trait, or behaviour changes in the changelog.Technical risk
^1.x constraint. Any composer update on a PHP 8.2–8.4 estate will fail resolution or, if config.platform is overridden, install onto an unsupported interpreter.config.platform.php in CI will not get a hard failure; they will get an installed-but-unsupported package.Key questions
illuminate/* / laravel/framework constraints, and does it drop support for any Laravel major?mbstring/collation semantics that shift between PHP minors (tokenization, case folding, accent handling)?Stack fit
Migration path
fab2s/searchable to ^1.0.0 explicitly and add a lockfile-enforced note so an unrelated composer update does not attempt the jump. Explicit pinning is the recommended default until the support policy is clarified.Compatibility
illuminate/* constraints and any test tooling (PHPUnit, PHPStan/Larastan) may lag PHP 8.5 more than this package does.mbstring/ICU changes show up as behavioural diffs rather than errors.Sequencing
^1.0.0.^1.1.0; expect a no-op diff.Maintenance
composer update events.Support
Scaling
Failure modes
composer install fails on PHP < 8.5 — loud and safe.config.platform.php overridden in CI, package installs on an unsupported interpreter, failures appear later as odd runtime or tokenization bugs — the worst case, and the one to guard against explicitly.mbstring/collation behaviour, producing different search results with no error signal. Covered by the golden-query regression set above.Ramp-up
How can I help you explore Laravel packages today?