| 123456789101112131415161718192021222324252627282930313233343536373839 | <?php
namespace Knp\Bundle\MenuBundle\Renderer;
use Knp\Menu\Renderer\RendererProviderInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class ContainerAwareProvider implements RendererProviderInterface
{
    private $container;
    private $rendererIds;
    private $defaultRenderer;
    public function __construct(ContainerInterface $container, $defaultRenderer, array $rendererIds)
    {
        $this->container = $container;
        $this->rendererIds = $rendererIds;
        $this->defaultRenderer = $defaultRenderer;
    }
    public function get($name = null)
    {
        if (null === $name) {
            $name = $this->defaultRenderer;
        }
        if (!isset($this->rendererIds[$name])) {
            throw new \InvalidArgumentException(sprintf('The renderer "%s" is not defined.', $name));
        }
        return $this->container->get($this->rendererIds[$name]);
    }
    public function has($name)
    {
        return isset($this->rendererIds[$name]);
    }
}
 |