php - Symfony2 "FatalErrorException: Compile Error: Cannot redeclare class"时不时

标签 php symfony doctrine-orm fatal-error

今天我遇到了一个非常奇怪的情况。我正在 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/

相关文章:

php - 可以通过浏览器查看 URL,但不能使用 CURL 查看 URL

php - SimpleXML->xpath 问题

php - $_SERVER ['HTTP_REFERER' ] 安全吗?

php - 如何使用 composer.phar install 解决问题

php - 查询生成器中的复杂查询

php - 如何在不加入 doctrine2 的情况下获得 id?

php - 是否可以防止从站点下载视频

vagrant - Symfony 3 + Homestead-7 : Trailing slash after app_dev. php 访问被拒绝

mysql - 语法错误第 0 行,第 83 列 : Error: Expected end of string, 得到 'cbfde50'

php - 如何使用来自非托管实体的数据正确更新托管实体?