如何向symfony缓存添加自定义行为:清除?

时间:2013-01-24 13:15:31

标签: php caching symfony1 symfony-1.4 apc

我需要在(new sfAPCCache())->clean()添加一个简单的调用,或者在执行命令apc_clear_cache()时添加./symfony cc

任何人都知道如何实现这一目标?在哪一点上我应该编辑我的symfony应用程序,或者我应该如何注册这个额外的行为?

2 个答案:

答案 0 :(得分:4)

实际上,我发现我可以收听一个事件来向./symfony cc添加新行为:

$this->dispatcher->connect('task.cache.clear', array('ClearAPCCache','clearCache'))

仍然存在无法从命令行任务中清除APC缓存的问题,因为APC缓存与Web服务器进程相关,而symfony命令是命令行脚本。

答案 1 :(得分:2)

您只需创建自己的自定义任务。

./symfony generate:task your_task_name

在此任务中(在lib文件夹中),您只需运行类似

的内容
protected function execute($arguments = array(), $options = array())
{
    // Run your own apc cache
    // ...

    /// Then run the cache:clear
    $this->runTask('cache:clear');
}