"访问被拒绝的代码5" Symfony2 / Doctrine2中的PHP重命名错误

时间:2016-02-18 12:08:02

标签: php symfony doctrine-orm doctrine

我得到臭名昭着的Doctrine" PHP Rename Access Denied Code 5"使用用户实体登录时,我的Symfony2项目中出错:

\\app\\cache\\dev/doctrine/orm/Proxies\\__CG__AcmeDemoBundleEntityUser.php): Access is denied. (code: 5)

我将登录确定,如果我很幸运,我可以在会话被杀之前加载页面,因为此错误导致用户身份验证失败。它只发生在这一个实体上。

我的同事,具有相同的设置和相同的项目具有相同的错误,但是对于不同的实体(并且仅针对该实体)。

此问题已报告on here before,其中包含指向Doctrine's GitHub上的错误的链接,该错误已在2.5 {已确认固定(在Doctrine ORM 2.5 Release Notes中确认)。

我的Symfony2项目正在使用Doctrine ORM 2.5.4运行,但我仍然遇到同样的错误。

尝试修正

  • 重新安装XAMPP;
  • 已删除的项目&从git中拉出项目;
  • 更新了供应商项目(可能还有旧的Doctrine ORM包);
  • 关闭PHPStorm(可能是锁定文件以进行索引);
  • 禁用Windows索引(与上述相同的原因)。

在config_dev.yml中将auto_generate_proxy_classes的值从%kernel.debug%更改为false可以防止出现此问题,但此会隐藏问题,而不是修复问题。< / p>

有没有人设法解决这个问题?

1 个答案:

答案 0 :(得分:0)

您是否尝试将auto_generate_proxy_classes设置为AbstractProxyFactory::AUTOGENERATE_EVALAbstractProxyFactory::AUTOGENERATE_FILE_NOT_EXISTS的基础常量值。

根据此文档部分Advanced Configuration > Auto-generating Proxy Classes,这应解决开发环境中的访问被拒绝问题。

此外,您应该确保您的生产配置遵循以下建议:

  

在生产环境中,强烈建议使用AUTOGENERATE_NEVER以获得最佳性能。其他选项在开发环境中很有意思。