我希望讓實體記錄最近修改實體的用戶(最好是他的ID)。我認爲一個漂亮的實體有一個getModifier()方法,但沒有setModifier(),因爲它是由類作爲內部事務處理的。我會用一些prePersist用用戶ID更新實體。所以這裏有兩個主要問題:如何將修飾符用戶存儲在Symfony 2實體中
1)從技術上講,我怎麼能得到一個實體的prePersist中的當前用戶ID?
2)哲學。我找到了很多答案,建議我重新思考我的模型,不要依賴於存儲在其中的任何數據。我沒有看到來自世界其他地方的孤立實體是如何理智的:在這裏看到兩個對比,在這些對比中允許實體做什麼。訪問服務以獲取可以存儲某些緩存輸出的文件夾名稱被認爲是非法的;而用文件抽象類寫入文件系統是可以的;我認爲後者對文件系統做了更多的假設。訪問當前用戶的身份被認爲是非法的;同時在實體上放置當前時間戳是可以的;所以一個(可能丟失的)用戶的概念是壞的,而時間概念是好的?如果關於不依賴於模型本身以外的任何其他概念是有效的,那麼人們如何敢於使用DateTime函數? (請不要說PHP的服務總是可訪問的,因爲一些缺失的設置/擴展可能很容易導致這些失敗。)我沒有看到如何在遵守嚴格限制的情況下將任何邏輯構建到實體中,以及如何避免那些實體最終只能是數據(通過這種封裝和信息隱藏級別,這個實體模型不會僅僅提供數組)。任何人都可以指出,模型環境中不能使用的那些元素與那些被認爲是合法的元素之間的特定區別是什麼?
謝謝,我明白了你的觀點。 –
該解決方案將實現使用容器獲取當前用戶的Doctrine行爲。我不想和愚蠢的實體一起去。我需要能夠安全地將我的實體傳遞給客戶端代碼,並假設通過OOP可以使這些類「自我照顧」,並且它們的接口已經足夠,並且不超過操縱它們所代表的數據所需的內容。對於簡單的學說實體來說這是不可能的,如果沒有這種行爲,我也可以用數組來代替。 :( –