gpt4 book ai didi

php - 为什么不应该在 Symfony 中使用绝对路径常量 __DIR__ 和 __FILE__

转载 作者:可可西里 更新时间:2023-10-31 23:04:57 24 4
gpt4 key购买 nike

我使用 SensioLabs Insight控制我的代码质量。

对于一个简单的文件上传,我必须得到我的上传目录的绝对路径:

protected function getUploadRootDir()
{
// the absolute directory path where uploaded
return __DIR__.'/../../../../web/'.$this->getUploadDir();
}

代码直接来自官方文档(How to handle file uploads with Doctrine)

但如果分析的代码包含 __DIR____FILE__ PHP 魔术常量,SLInsight 会发出警告:

__DIR__ and __FILE__ constants may conflict with the Symfony resource overriding system.

这个常量的使用如何导致与 Symfony 的冲突?

如何在我的代码中避免它们?

最佳答案

在文件上传类的情况下,您可以忽略此错误消息。但在其他情况下,最好使用 Symfony 文件定位器而不是硬编码文件路径。例如:

$path = $this->get('kernel')->locateResource('@AppBundle/Resources/config/services.xml');

代替:

$path = __DIR__.'/../../../src/Acme/AppBundle/Resources/config/services.xml'

关于php - 为什么不应该在 Symfony 中使用绝对路径常量 __DIR__ 和 __FILE__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34331370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com