-
Notifications
You must be signed in to change notification settings - Fork 35
/
Index.php
58 lines (46 loc) 路 1.59 KB
/
Index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
/*
* This file is part of the jolicode/elastically library.
*
* (c) JoliCode <coucou@jolicode.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace JoliCode\Elastically;
use Elastica\Exception\ExceptionInterface;
use Elastica\Index as ElasticaIndex;
use Elastica\ResultSet\BuilderInterface;
use Elastica\Search;
use Symfony\Component\Serializer\Exception\ExceptionInterface as SerializerExceptionInterface;
class Index extends ElasticaIndex
{
private ResultSetBuilder $resultSetBuilder;
public function __construct(Client $client, string $name, ResultSetBuilder $resultSetBuilder)
{
parent::__construct($client, $name);
$this->resultSetBuilder = $resultSetBuilder;
}
/**
* @throws ExceptionInterface
* @throws SerializerExceptionInterface
*/
public function getModel($id)
{
$document = $this->getDocument($id);
return $this->resultSetBuilder->buildModelFromDocument($document);
}
public function createSearch($query = '', $options = null, ?BuilderInterface $builder = null): Search
{
return parent::createSearch($query, $options, $builder ?? $this->resultSetBuilder);
}
public function getBuilder(): ResultSetBuilder
{
trigger_deprecation('jolicode/elastically', '1.3.0', 'Method %s() is deprecated. Use %s::getBuilder() instead', __METHOD__, Client::class);
return $this->resultSetBuilder;
}
public function getClient(): Client
{
return parent::getClient();
}
}