Giả sử tôi có một thực thể được gọi là Product
và thực thể này được tải mỗi khi người dùng truy cập trang thông tin sản phẩm. Thông thường tôi sẽ lưu đối tượng trong Zend_Cache (memcache) trong một giờ để tránh nhấn db cho mỗi yêu cầu nhưng theo như tôi hiểu thì không thể thực hiện được với các thực thể Doctrine2 vì các đối tượng Proxy.Lưu một thực thể doctrine2 vào bộ nhớ cache để tăng tốc độ tải trang
Vì vậy, câu hỏi của tôi là, làm cách nào để tránh tải cùng một thực thể khỏi cơ sở dữ liệu cho từng yêu cầu?
[EDIT]
tôi đã cố gắng sử dụng Doctrine, bộ nhớ cache như thế này
$categoryService = App_Service_Container::getService('\App\Service\Category'); $cache = $categoryService->getEm()->getConfiguration()->getResultCacheImpl(); $apple = $cache->fetch('apple');
Nhưng tôi nhận được lỗi sau
Cảnh báo: yêu cầu (App/Entity/Proxy/_ CG _ /App/Entity/Category.php) [function.require]: không mở được luồng: Không có tệp hoặc thư mục như vậy trong /opt/vhosts/app/price/library/Doctrine/Common/ClassLoader.php trên dòng 163
này là giống nhau cho Zend cache cũng như bạn không thể sắp đặt từng thực thể vì lớp Proxy
1. Để làm việc này, tôi cần ghi đè lên các phương thức lưu trữ như 'find',' findBy * ', phải không? 2. Vui lòng xem chỉnh sửa của tôi. – Optimus