比方說,我有一個實體,稱爲Product
這種實體被加載每次用戶點擊產品信息頁面。通常我會將對象保存在Zend_Cache(memcache)中一小時,以避免每次請求觸及數據庫,但據我瞭解,由於代理對象,Doctrine2實體無法實現這一點。保存doctrine2實體緩存,以加快頁面加載
所以我的問題是,如何避免從數據庫中爲每個請求加載相同的實體?
[編輯]
我試圖用主義緩存這樣
$categoryService = App_Service_Container::getService('\App\Service\Category'); $cache = $categoryService->getEm()->getConfiguration()->getResultCacheImpl(); $apple = $cache->fetch('apple');
但我得到以下錯誤
警告:要求(應用程序/實體/ Proxy/_ CG _ /App/Entity/Category.php) [function.require]:無法打開流:沒有這樣的文件或目錄 在/opt/vhosts/app/price/library/Doctrine/Common/ClassLoader.php上 線163
這是同爲Zend的緩存,以及你不能序列化,因爲代理類的實體
1.爲此,我需要覆蓋庫方法,比如'find','findBy *',對吧? 2.請參閱我的編輯。 – Optimus