33 lines
754 B
PHP
Executable file
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));
|
|
});
|
|
}
|
|
}
|
|
}
|