如何在CakePHP插件中创建缓存文件?

时间:2014-08-05 19:10:55

标签: cakephp caching cakephp-2.0

我已经为CakePHP创建了一个插件,我希望在/app/Plugin/MyPlugin/tmp/cache的自己的插件文件夹中生成缓存文件。

我已手动取消MyPlugin/tmp/cache目录。

我在/app/Plugin/MyPlugin/Config/bootstrap.php创建了一个引导程序文件,其中包含以下内容:

<?php
    Cache::config('short', array(
        'engine' => 'File',
        'duration' => '+60 minutes',
        'path' => 'Plugin/MyPlugin/tmp/cache',
        'prefix' => 'cake_short_',
        'mask' => 0666,
    ));

我在/app/Plugin/MyPlugin/Console/Command/MyPluginShell.php创建了一个 Shell 脚本,其功能如下:

<?php
    ...

    public function get_listings() {
        $listings = $this->Listing->find('all');
        Cache::write('listings', $listings, 'short');
        $this->out('Task Completed');
    }

我可以在Cake控制台中运行get_listings并且任务完成,但是/app/Plugin/MyPlugin/tmp/cache没有像我期望的那样创建缓存文件。

在旁注中,我尝试将'path' => 'Plugin/MyPlugin/tmp/cache'替换为'path' => CACHE只是为了查看它是否会出现在app/tmp/cache但是没有运气。

我还在插件中创建了/app/Plugin/MyPlugin/tmp/cache

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我明白了。

我没有在app/Config/bootstrap.php内正确加载插件。

我这样做(不正确):

CakePlugin::load('MyPlugin', array('routes' => true));

而不是这个(正确):

CakePlugin::load('MyPlugin', array('routes' => true, 'bootstrap' => true));