2013-08-03 29 views
7

Tôi đã cài đặt PHP 5.5.1 trong môi trường phát triển của mình và cũng có cấu hình Zend OpCache làm nhà cung cấp bộ nhớ cache. Mọi thứ đang làm việc trên máy chủ với phiên bản và cài đặt mới, nhưng bên trong dự án symfony 2 của tôi, tôi có bộ nhớ cache Doctine2 để lưu trữ một số dữ liệu "tĩnh" (quốc gia, ngôn ngữ, v.v.) và nó không hoạt động với Opcache.Làm thế nào để sử dụng ZendOpCache cho Doctrine2 cache?

Cho đến hôm nay, tôi đã sử dụng lớp Doctrine\Common\Cache\ApcCache để làm việc với bộ nhớ cache của Doctrine2 bằng APC, nhưng có vẻ như không tồn tại một lớp để làm việc với OpCache.

Đây là config.yml tôi cho APC cache:

# Services 
services: 
    cache: 
     class: Doctrine\Common\Cache\ApcCache 

Bây giờ, với OpCache Tôi đã cố gắng sử dụng ZendDataCache để đối phó với hệ thống bộ nhớ cache, nhưng không hoạt động:

# Services 
services: 
    cache: 
     class: Doctrine\Common\Cache\ZendDataCache 

tôi nhận được lỗi này, vì vậy tôi giả định rằng lớp ZendDataCache không dành cho OpCache:

FatalErrorException: Error: Call to undefined function Doctrine\Common\Cache\zend_shm_cache_fetch() in /var/www/meediam/src/vendor/doctrine/common/lib/Doctrine/Common/Cache/ZendDataCache.php line 38

Cuối cùng Tôi đã định cấu hình ArrayCache và nó hoạt động nhưng không có hệ thống bộ nhớ cache phía sau.

Câu hỏi là, Bất kỳ ai biết cách sử dụng Zend OpCache với Doctrine 2 Cache?

PS: Tôi đang sử dụng Symfony 2.3.2

+1

OpCache của PHP là một bộ đệm opcode đơn giản. Để lưu trữ dữ liệu trong bộ nhớ cache, bạn sẽ cần một cái gì đó như: [APCu] (https://github.com/krakjoe/apcu). – PeeHaa

+0

Hoàn hảo. Nó hoạt động bằng cách sử dụng APCu User Cache. (nếu bạn muốn, bạn có thể trả lời câu hỏi trong thư trả lời mới để đánh dấu câu hỏi đó là đã giải quyết) – unairoldan

Trả lời

7

Thêm bình luận của tôi như là một câu trả lời.

OpCache của PHP không phải là bộ đệm ẩn hoàn toàn vì APC Đây là bộ nhớ cache mã hóa đơn giản. Nếu bạn muốn lưu trữ dữ liệu tùy chỉnh giống như bạn làm với APC cũ, bạn có thể sử dụng Joe Watkins' APCu: https://github.com/krakjoe/apcu.

Ngoài ra còn có yac và memcache.

-2

Bạn thực sự có thể sử dụng OpCache gián tiếp qua PhpFileCache

Các vấn đề liên quan