Cakephp在组件中使用Cache

时间:2014-04-25 08:15:46

标签: cakephp caching components

我正在使用Cakephp 2.3,我想在我的几个控制器中执行许多常见的计算。所以我在我的appcontroller中编写这些函数,并缓存了一些数据.. 但是我的appController会变得很胖......所以我创建了一些组件来执行这些操作..我不知道我的方法是对还是不...?请建议..

  1. 我想在我的组件中使用缓存,我尝试了这段代码。但没有任何缓存..

        public $helpers =array('Cache');
    
  2.      $result = Cache::read('fm_data', 'long');
           if (!$result) {
           $result =
     $this->TFmStation->find('all',array('contain'=>array('TLocation',
                'TLanguage','TMediaOrg','TContactPerson',
                        'TAddress','TFmProgram'=>array('TTargetGroup'))));
                           Cache::write('fm_data', $result, 'long');
                    }
     return $result;
    
    1. 请帮我看看如何在组件中使用缓存
    2. 如果在应用程序中有更多常见函数的情况下如何有效地使用cakephp中的组件类..当我在appController中编写这些函数时,它会根据内存预先加载所有函数,如何有效地使用组件

1 个答案:

答案 0 :(得分:1)

模型TFmStation是拥有上述逻辑的最佳位置。组件用于通用功能,如UploadComponent,EmailComponent,RecaptchaComponent等。如果您的逻辑部分与模型有关,那么它应该进入该模型。

可以通过AppController.php以与调用Component相似的方式调用Model。