1. Go to this page and download the library: Download babenkoivan/elastic-client library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use Elastic\Elasticsearch\ClientInterface;
use Elastic\Client\ClientBuilderInterface;
class MyClientBuilder implements ClientBuilderInterface
{
public function default(): ClientInterface
{
// should return a client instance for the default connection
}
public function connection(string $name): ClientInterface
{
// should return a client instance for the connection with the given name
}
}
class MyAppServiceProvider extends Illuminate\Support\ServiceProvider
{
public function register()
{
$this->app->singleton(ClientBuilderInterface::class, MyClientBuilder::class);
}
}
namespace App\Console\Commands;
use Elastic\Elasticsearch\ClientInterface;
use Elastic\Client\ClientBuilderInterface;
use Illuminate\Console\Command;
class CreateIndex extends Command
{
protected $signature = 'create:index {name}';
protected $description = 'Creates an index';
public function handle(ClientBuilderInterface $clientBuilder)
{
// get a client for the default connection
$client = $clientBuilder->default();
// get a client for the connection with name "write"
$client = $clientBuilder->connection('write');
$client->indices()->create([
'index' => $this->argument('name')
]);
}
}