今天我遇到了一个非常奇怪的情况。我正在 Doctrine Symfony2 中的两个实体之间实现一个简单的 1:m 关系。
有用户和组。每个用户都应该添加到一个组中。
但是每 3-4 次重新加载我的 Controller 就会吐出一个错误。
FatalErrorException: Compile Error: Cannot redeclare class Proxies\__CG__\Creativebrains\AthleteBundle\Entity\Group in /var/www/symfony2/app/cache/dev/doctrine/orm/Proxies/__CG__CreativebrainsAthleteBundleEntityGroup.php line 8
稍后重新加载我得到正常的 JSON 输出
{
id: 1,
username: "dominik",
email: "dominik@creativebrains.net",
enabled: true,
displayname: "Dominik",
group: {
name: "asd"
...
}
}
我认为这是某种缓存错误,但我不明白为什么。
希望有人知道答案。 祝你有美好的一天!
最佳答案
问题与 APC 操作码缓存有关。正如您所描述的那样,我一直在经历它,它似乎最常发生在多个同时请求的情况下。禁用 APC 可以解决问题,但并不理想。您可以通过将其添加到您的 php.ini 文件来仅针对这些生成的代理禁用它:
apc.filters = '-.*__CG__.*'
这解决了我的问题。这只是开发环境中的一个问题,因此不应在生产环境中使用。
关于php - Symfony2 "FatalErrorException: Compile Error: Cannot redeclare class"时不时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20752438/