jord-jd/php-base-search

Base interfaces/classes for searcher and search results

Maintainers

Package info

github.com/Jord-JD/php-base-search

pkg:composer/jord-jd/php-base-search

Transparency log

Fund package maintenance!

DivineOmega

Statistics

Installs: 80

Dependents: 6

Suggesters: 0

Stars: 1

Open Issues: 0

v4.1.0 2026-07-18 04:28 UTC

This package is auto-updated.

Last update: 2026-07-18 04:29:29 UTC


README

Shared contracts and a reusable result value object for PHP search packages.

Installation

composer require jord-jd/php-base-search

Implementing a searcher

Implement SearcherInterface and return an array of SearchResultInterface objects. SearchResult is provided for searchers that do not need extra provider-specific fields.

use JordJD\BaseSearch\Interfaces\SearcherInterface;
use JordJD\BaseSearch\SearchResult;

final class DocumentationSearcher implements SearcherInterface
{
    public function search(string $query): array
    {
        return [
            new SearchResult(
                'Installation',
                'Install the package with Composer.',
                'https://example.com/docs/installation',
                1.0
            ),
        ];
    }
}

Consuming results

Every result exposes getTitle(), getDescription(), getUrl(), and getScore(). The supplied SearchResult also supports toArray() and native JSON serialization:

$result = $searcher->search('installation')[0];

echo $result->getTitle();
echo json_encode($result);

The package supports PHP 7.1 through current PHP 8.x releases.