私は自分のアプリにcakephp2.1.1を使用しています。私はコントローラーを持っていて、このコントローラーでファイルキャッシュを使用しています。コントローラのアクションでは、プラグインNUSOAPを使用してSOAPServiceを呼び出します。
私には2つの行動があります:
1.インデックス
public function index() {
$items = Cache::read('items', 'tenMinutes'); //tenMinutes is the configuration of cache
if($items){
$service = new Service();
$items = $service->callService();
Cache::write('items',$items,'tenMinutes');
}
$this->set('items',$items);
}
2. get_result
public function get_result() {
$items = Cache::read('items','tenMinutes');
if($items){
//start block code filter items by params
...
//end
$service = new Service();
$result = $service->callService2($items);
$this->set('result',$result);
} else {
//redirect index to load ítems
$this->redirect(array('controller' =>'controllerName', 'action' => 'index'));
}
}
キャッシュの構成は次のとおりです。
Cache::config('tenMinutes', array(
'engine' => 'File', //[required]
'duration'=> '10 minutes', //[optional]
'path' => CACHE, //[optional] use system tmp directory - remember to use absolute path
'prefix' => 'cake_10_', //[optional] prefix every cache file with this string
));
インデックスアクションを呼び出して、cakephpがキャッシュに書き込むのが初めての場合、次のエラーが発生します。
致命的なエラー:172行目のC:\ wamp \ www \ myapp \ lib \ Cake \ View \ Helper\HtmlHelper.phpでコンストラクターを呼び出すことができません
2回目にインデックスを入力し、キャッシュがすでにいっぱいになっている場合は、ボタンをクリックして2番目のアクション(get_result)に移動します。これにより、同じエラーが返されます。
誰かが私を助けることができますか?
ありがとう