How to get container instance in sonata Admin class?

skonsoft picture skonsoft · Sep 1, 2012 · Viewed 20.4k times · Source

I need to parse some configurations parameters from my config.yml such as enabled languages. But when i try to do that by using the normal symfony method: $this->container->get('my_params'); it fails because my admin class extends Sonata\AdminBundle\Admin\Admin class which does not extend the Symfony\Component\DependencyInjection\ContainerAware class.

Please, How to get the container inside the sonata Admin class ?

Now i'm resolving this problem by overriding the sonata Admin Class to make it extends the ContainerAware.

Answer

Javier Neyra picture Javier Neyra · Aug 1, 2013

probably already resolved, because its an old question, but just for reference, the container is already available in admin class using the configuration pool...

$this->getConfigurationPool()->getContainer();

Of course, it is better practice to inject services in the admin class, but, like in the controllers. why would someone, take the time to configure setter injection if already has the container available?