2016-03-22 7 views
1

私はSplQueue PHPのクラスを使用して、データキューを作成し、memcacheのキューを格納しています:ZF2 ..のMemcacheにSplQueueオブジェクトを正しく格納できません。

$queue = new \SplQueue(); 
$queue->enqueue($data); 
print_r($queue); 
$this->getServiceLocator()->get('memcached')->setItem('key', $queue); 
$queue = $this->getServiceLocator()->get('memcached')->getItem('key'); 
print_r($queue); 

最終print_r次のように空白の結果を与えている:

SplQueue Object 
(
    [flags:SplDoublyLinkedList:private] => 4 
    [dllist:SplDoublyLinkedList:private] => Array 
     (
     ) 

) 

しかし、最初print_rのように生成されたキューを与えています期待される。このコードは私のローカルシステムで正常に動作していますが、プロダクションサーバで上記の問題が発生しています。

注: - Memcahcedバージョンすべてのヘルプは理解されるであろう両方のマシン1.4

に同じです..!

答えて

1

グーグルでは、私がhereを見つけたのは、SplDoublyLinkedListのクラスのシリアル化に問題があり、その5.4より低いバージョンです。 SplDoublyLinkedList::serializeはプロダクションサーバで動作していませんでした(サーバがPHP 5.3で動作していたため)、PHPバージョンを5.4にアップグレードする以外は、代替ソリューションはありません。