1

Dancer アプリで memcached (または devel のファイル) に CHI インターフェイスを使用していますが、オブジェクトをキャッシュするとシリアライザーでエラーが発生します。ダンサーの設定には次のものがあります。

engines:
  JSON:
    allow_blessed: 1
    convert_blessed: 1

他に何が必要ですか?

Error message:
Error while loading bin/app.pl: encountered object 'C3M::CMF=HASH(0x3ef8aa8)', but neither allow_blessed nor convert_blessed settings are enabled at /usr/lib/perl5/site_perl/5.10/CHI/Serializer/JSON.pm line 19.
4

1 に答える 1

0

CHI::Serializer::JSON は Dancer::Serializer::JSON と同じシリアライザーを使用しません。Dancer::Serializer::JSON は config.yml で setting('engines') を使用しますが、構成オプションを CHI::Serializer::JSON に送信する方法がありません。

回避策:

use CHI::Serializer::JSON; 
my $JSON = JSON->new->utf8->canonical;
$JSON->allow_blessed(1);
$JSON->convert_blessed(1);
*CHI::Serializer::JSON::serialize   = sub { $JSON->encode( $_[1] ) };
*CHI::Serializer::JSON::deserialize = sub { $JSON->decode( $_[1] ) };
于 2012-05-04T07:49:29.857 に答える