capell-app/search
Search integration for Capell applications, adding configurable search across models and content. Built for Laravel, it supports indexing, querying, and extension points for tailoring results and building custom search experiences.
capell-app/search gives you a driver-based search abstraction for Laravel: you mark Eloquent models as searchable, an indexer pushes them into a backend (database/engine-specific), and a single query API stays the same when you swap drivers.
composer require capell-app/search and publish the config (php artisan vendor:publish --tag=search-config or whatever tag the README lists).config/search.php (default driver, per-driver connection/index settings) and the package README's driver table. These two files tell you more about day-to-day behaviour than the source..env (e.g. SEARCH_DRIVER=database locally, an engine driver in staging/production) — never hardcode the driver in code.SearchService (or per-model query objects) that takes validated criteria and returns a paginator means driver swaps, engine downtime, and future package upgrades don't leak into Blade templates and controllers.Model::query()->update([...]), insert(), seeders, and raw SQL all bypass model events, so the index silently goes stale. Put a reindex step in the seeder and in any data-migration path.phpunit.xml so tests don't need a live search cluster. Assert on your own SearchService return shape rather than on engine-specific scores.php artisan config:cache will freeze your driver/index settings. After changing search env vars locally or in CI, re-run config:clear, or you'll debug a config that isn't being read.queue:restart — otherwise old workers write documents in the old shape.dispatchAfterResponse/afterCommit (or index in an onSaved hook guarded by commit) so you never index a row that then rolls back.composer.json rather than floating on ^1.0, and re-run your index + a sample query after upgrading to confirm index format compatibility.How can I help you explore Laravel packages today?