directorytree / opensearch-client
A Laravel integration for the official OpenSearch PHP client
v1.0.0
2026-06-22 13:50 UTC
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.0
- illuminate/support: ^11.0|^12.0|^13.0
- opensearch-project/opensearch-php: ^2.6
Requires (Dev)
- laravel/pint: ^1.0
- orchestra/testbench: ^9.0|^10.0|^11.0
- pestphp/pest: ^3.0
This package is auto-updated.
Last update: 2026-06-23 16:02:06 UTC
README
A Laravel integration for the OpenSearch PHP client.
Installation
Install the package with Composer:
composer require directorytree/opensearch-client
Configuration
Publish the configuration file:
php artisan vendor:publish --provider="DirectoryTree\OpenSearchClient\OpenSearchClientServiceProvider"
The published config/opensearch-client.php file defines the default connection and any named OpenSearch connections:
return [ 'default' => env('OPENSEARCH_CONNECTION', 'default'), 'connections' => [ 'default' => [ 'base_uri' => env('OPENSEARCH_HOST', 'http://localhost:9200'), ], ], ];
Each connection is passed directly to OpenSearch\GuzzleClientFactory.
Usage
Resolve DirectoryTree\OpenSearchClient\OpenSearchManager from the container to access OpenSearch clients:
namespace App\Console\Commands; use DirectoryTree\OpenSearchClient\OpenSearchManager; use Illuminate\Console\Command; class CreateIndex extends Command { protected $signature = 'create:index {name}'; protected $description = 'Creates an index'; public function handle(OpenSearchManager $opensearch): void { $client = $opensearch->default(); $client->indices()->create([ 'index' => $this->argument('name'), ]); } }
You can also resolve named connections:
$client = $opensearch->connection('write');
You may also use the facade:
use DirectoryTree\OpenSearchClient\Facades\OpenSearch; $client = OpenSearch::connection('write');