7

開発環境に PHP 5.5.1 をインストールし、キャッシュ プロバイダーとして Zend OpCache を構成しています。すべてが新しいバージョンと設定でサーバー上で動作していますが、私の symfony 2 プロジェクト内にはいくつかの「静的」データ (国、言語など) を格納するための Doctine2 キャッシュがあり、Opcache では動作しません。

今までDoctrine\Common\Cache\ApcCacheクラスを使って APC を使って Doctrine2 のキャッシュを操作していましたが、OpCache を操作するクラスがないようです。

これは、APC キャッシュの config.yml です。

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

現在、OpCache を使用してZendDataCacheを使用してキャッシュ システムを処理しようとしましたが、機能しません。

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

このエラーが表示されるので、ZendDataCache クラスは OpCache 用ではないと仮定します。

FatalErrorException: エラー: /var/www/meediam/src/vendor/doctrine/common/lib/Doctrine/Common/Cache/ZendDataCache.php 行 38 の未定義関数 Doctrine\Common\Cache\zend_shm_cache_fetch() の呼び出し

最後に、ArrayCacheを構成しましたが、動作しますが、背後にキャッシュ システムはありません。

質問は、 Doctrine 2 キャッシュで Zend OpCache を使用する方法を知っている人はいますか?

PS: Symfony 2.3.2 を使用しています

4

2 に答える 2

7

私のコメントを回答として追加します。

PHP の OpCache は、APC のように完全なキャッシュではなく、単なるオペコード キャッシュです。古い APC と同じようにカスタム データを保存したい場合は、Joe Watkins のAPCu ( https://github.com/krakjoe/apcu ) を使用できます。

yacと memcacheもあります。

于 2013-08-04T11:48:30.600 に答える