for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace MediaMonks\SonataMediaBundle\Provider;
use MediaMonks\SonataMediaBundle\Model\MediaInterface;
class ProviderPool
{
/**
* @var array
*/
protected $providers = [];
* @param $name
* @return AbstractProvider
public function getProvider($name)
if (!isset($this->providers[$name])) {
throw new \InvalidArgumentException(
sprintf('Provider with name "%s" does not exist', $name)
);
}
return $this->providers[$name];
* @param ProviderInterface $provider
public function addProvider(ProviderInterface $provider)
$this->providers[$provider->getName()] = $provider;
* @param ProviderInterface[] $providers
public function addProviders(array $providers)
foreach ($providers as $provider) {
$this->addProvider($provider);
* @param $providers
public function setProviders(array $providers)
$this->providers = [];
$this->addProviders($providers);
* @return ProviderInterface[]
public function getProviders()
return $this->providers;
* @param MediaInterface $media
public function getByMedia(MediaInterface $media)
return $this->getProvider($media->getProvider());