Closed ezimuel closed 3 months ago
This is a proposal for adding a Response\Elasticsearch::mapTo($class = 'stdClass') for mapping an ES|QL response into an object of a class $class.
Response\Elasticsearch::mapTo($class = 'stdClass')
$class
Here an example:
class Employee { public string $name; public DateTime $birthdate; public float $avg_salary; public string $country; } $client = ClientBuilder::create() ->build(); $result = $client->esql()->query([ 'body' => [ 'query' => 'FROM employees | STATS avg_salary = AVG(salary) by country' ] ]); $employees = $result->mapTo(Employee::class); // array of Employee printf("Number of employees: %d\n", count($employees)); printf("First employee\n"); printf("Name: %s\n", $employees[0]->name); printf("Birthdate: %s\n", $employees[0]->birthday->format('Y-m-d')); printf("Avg salary: %.2f\n", $employees[0]->avg_salary); printf("Country: %s\n", $employees[0]->country);
If $class is not specified the default class is stdClass.
Done in #1399
This is a proposal for adding a
Response\Elasticsearch::mapTo($class = 'stdClass')
for mapping an ES|QL response into an object of a class$class
.Here an example:
If
$class
is not specified the default class is stdClass.