Merge pull request #579 from merk/client-overwrite
Surpress server errors cookbook update
This commit is contained in:
commit
d532e6b1e3
|
@ -1,5 +1,5 @@
|
|||
Suppressing Server Errors
|
||||
========================
|
||||
=========================
|
||||
|
||||
By default, exceptions from the Elastica client library will propagate through
|
||||
the bundle's Client class. For instance, if the Elasticsearch server is offline,
|
||||
|
@ -12,25 +12,48 @@ container parameter with a custom class. In the following example, we override
|
|||
the `Client::request()` method and return the equivalent of an empty search
|
||||
response if an exception occurred.
|
||||
|
||||
```
|
||||
Sample client code:
|
||||
-------------------
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
||||
namespace Acme\ElasticaBundle;
|
||||
|
||||
use FOS\ElasticaBundle\Client as BaseClient;
|
||||
|
||||
use Elastica\Exception\ExceptionInterface;
|
||||
use Elastica\Request;
|
||||
use Elastica\Response;
|
||||
use FOS\ElasticaBundle\Client as BaseClient;
|
||||
|
||||
class Client extends BaseClient
|
||||
{
|
||||
public function request($path, $method, $data = array())
|
||||
public function request($path, $method = Request::GET, $data = array(), array $query = array())
|
||||
{
|
||||
try {
|
||||
return parent::request($path, $method, $data);
|
||||
return parent::request($path, $method, $data, $query);
|
||||
} catch (ExceptionInterface $e) {
|
||||
if ($this->_logger) {
|
||||
$this->_logger->warning('Failed to send a request to ElasticSearch', array(
|
||||
'exception' => $e->getMessage(),
|
||||
'path' => $path,
|
||||
'method' => $method,
|
||||
'data' => $data,
|
||||
'query' => $query
|
||||
));
|
||||
}
|
||||
|
||||
return new Response('{"took":0,"timed_out":false,"hits":{"total":0,"max_score":0,"hits":[]}}');
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
```
|
||||
|
||||
Configuration change:
|
||||
---------------------
|
||||
|
||||
You must update a parameter in your `app/config/config.yml` file to point to your overridden client:
|
||||
|
||||
```yaml
|
||||
parameters:
|
||||
fos_elastica.client.class: Acme\ElasticaBundle\Client
|
||||
```
|
||||
|
|
Loading…
Reference in a new issue