I use SensioLabs Insight to control my code quality.
For a simple file upload, I have to get the absolute path of my uploads directory:
protected function getUploadRootDir()
{
// the absolute directory path where uploaded
return __DIR__.'/../../../../web/'.$this->getUploadDir();
}
Code directly coming from official documentation (How to handle file uploads with Doctrine)
But SLInsight raises a warning if the code analysed contains __DIR__
or __FILE__
PHP magic constants:
__DIR__
and__FILE__
constants may conflict with the Symfony resource overriding system.
How usage of this constants can causes conflicts with Symfony?
And how can I avoid them in my code?
In the case of the file upload class, you can probably ignore this error message. But in other cases, it's better o use the Symfony file locator instead of hardcoding file paths. For example:
$path = $this->get('kernel')->locateResource('@AppBundle/Resources/config/services.xml');
Instead of:
$path = __DIR__.'/../../../src/Acme/AppBundle/Resources/config/services.xml'