FOSElasticaBundle/Provider/AbstractProvider.php

86 lines
1.9 KiB
PHP
Raw Normal View History

<?php
namespace FOS\ElasticaBundle\Provider;
use FOS\ElasticaBundle\Persister\ObjectPersisterInterface;
2014-02-19 12:58:02 +01:00
/**
2015-03-12 11:20:00 +01:00
* AbstractProvider.
2014-02-19 12:58:02 +01:00
*/
abstract class AbstractProvider implements ProviderInterface
{
2014-02-19 12:58:02 +01:00
/**
* @var ObjectPersisterInterface
*/
protected $objectPersister;
2014-02-19 12:58:02 +01:00
/**
* @var string
*/
protected $objectClass;
/**
* @var array
*/
protected $options;
/**
2015-03-13 09:34:56 +01:00
* @var IndexableInterface
*/
private $indexable;
/**
* Constructor.
*
* @param ObjectPersisterInterface $objectPersister
2015-03-12 11:20:00 +01:00
* @param IndexableInterface $indexable
* @param string $objectClass
* @param array $options
*/
public function __construct(
ObjectPersisterInterface $objectPersister,
IndexableInterface $indexable,
$objectClass,
array $options = array()
) {
$this->indexable = $indexable;
$this->objectClass = $objectClass;
$this->objectPersister = $objectPersister;
$this->options = array_merge(array(
'batch_size' => 100,
), $options);
}
/**
* Checks if a given object should be indexed or not.
*
* @param object $object
2015-03-12 11:20:00 +01:00
*
* @return bool
*/
protected function isObjectIndexable($object)
{
return $this->indexable->isObjectIndexable(
$this->options['indexName'],
$this->options['typeName'],
$object
);
}
/**
2015-03-12 11:20:00 +01:00
* Get string with RAM usage information (current and peak).
*
* @deprecated To be removed in 4.0
2015-03-12 11:45:24 +01:00
*
* @return string
*/
2014-02-19 09:31:22 +01:00
protected function getMemoryUsage()
{
2014-02-19 12:58:02 +01:00
$memory = round(memory_get_usage() / (1024 * 1024)); // to get usage in Mo
$memoryMax = round(memory_get_peak_usage() / (1024 * 1024)); // to get max usage in Mo
2014-02-19 09:31:22 +01:00
2014-02-19 12:58:02 +01:00
return sprintf('(RAM : current=%uMo peak=%uMo)', $memory, $memoryMax);
}
}