2013-12-23 78 views
2

今天我得到了一個非常奇怪的情況。我在Docfine Symfony2中的兩個實體之間實現了簡單的1:m關係。Symfony2「FatalErrorException:編譯錯誤:無法重新聲明類」

有用戶和組。每個用戶應該被添加到恰好一個組。

但每3-4重新加載我的控制器吐出一個錯誤。

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: "[email protected]", 
    enabled: true, 
    displayname: "Dominik", 
    group: { 
     name: "asd" 
     ... 
    } 
} 

我認爲這是某種形式的緩存錯誤的,但我不明白爲什麼。

希望有人知道答案。 祝您有美好的一天!

+0

從項目根目錄中刪除您的緩存:'rm -rf app/cache/*'。 – keyboardSmasher

+0

嗨,謝謝,但我已經嘗試了幾次。我現在有一個理論認爲它是造成損害的Vagrant/NFS。當我將緩存文件夾移動到/ tmp /時,它似乎工作。我會進一步研究它,並讓你更新。祝你今天愉快。 –

+0

是的,我在我的MacBook上也遇到了使用vagrant/nfs的問題。我必須用'rm -rf'覈實緩存,然後從VAGRANT BOX運行'php app/console cache:clear -e = prod -n'。大聲笑我不得不強調,因爲從本地終端運行它會做一些奇怪的事情。我想我也必須在AppKernel和控制檯中將umask設置爲0000。 – keyboardSmasher

回答

1

該問題與APC操作碼緩存有關。正如您所描述的那樣,我一直在體驗它,它似乎必須同時發生多個請求。禁用APC解決了這個問題,但它並不理想。您可以禁用它只是在你的php.ini文件與本所生成的這些procies:

apc.filters = '-.*__CG__.*'

這解決了這個問題對我來說。在開發環境中這只是一個問題,所以不應該用於生產。

相關問題