FOSElasticaBundle/Populator.php
2013-03-27 13:44:44 -04:00

33 lines
754 B
PHP
Executable file

<?php
namespace FOS\ElasticaBundle;
use FOS\ElasticaBundle\Provider\ProviderInterface;
use Closure;
class Populator
{
protected $providers;
public function __construct(array $providers)
{
foreach ($providers as $name => $provider) {
$this->addProvider($name, $provider);
}
}
public function addProvider($name, ProviderInterface $provider)
{
$this->providers[$name] = $provider;
}
public function populate(Closure $loggerClosure)
{
foreach ($this->providers as $name => $provider) {
$provider->populate(function($text) use ($name, $loggerClosure) {
$loggerClosure(sprintf('Indexing %s, %s', $name, $text));
});
}
}
}