What is the best way to get the root app directory from inside the controller? Is it possible to get it outside of the controller?
Now I get it by passing it (from parameters) to the service as an argument, like this:
services:
sr_processor:
class: Pro\Processor
arguments: [%kernel.root_dir%]
Is there a better, simpler way to get this information in Symfony2?
UPDATE 2018-10-21:
As of this week, getRootDir()
was deprecated. Please use getProjectDir()
instead, as suggested in the comment section by Muzaraf Ali.
—-
Use this:
$this->get('kernel')->getRootDir();
And if you want the web root:
$this->get('kernel')->getRootDir() . '/../web' . $this->getRequest()->getBasePath();
this will work from controller action method...
EDIT: As for the services, I think the way you did it is as clean as possible, although I would pass complete kernel service as an argument... but this will also do the trick...