【问题标题】:Clearing Symfony cache for another application为另一个应用程序清除 Symfony 缓存
【发布时间】:2009-08-25 11:22:19
【问题描述】:

我想从后端应用程序中的操作清除前端应用程序的缓存。

我怎样才能做到这一点?

【问题讨论】:

    标签: php caching symfony1


    【解决方案1】:

    我相信在 symfony 1.2 中执行此操作的正确方法如下:

    sfContext::switchTo('frontend'); //switch to the environment you wish to clear
    sfContext::getInstance()->getViewCacheManager()->getCache()->clean(sfCache::ALL);
    sfContext::switchTo('backend'); //switch back to the environment you started from
    

    【讨论】:

      【解决方案2】:

      这对我有用。它从给定目录中删除所有缓存的文件:

      $cache_dir = sfConfig::get('sf_cache_dir').'/'.$app.'/'.$env.'/';
      
      $cache = new sfFileCache(array('cache_dir' => $cache_dir));
      $cache->clean();
      

      【讨论】:

        【解决方案3】:

        如果有人正在寻找清除一个缓存项(一页):

        sfContext::switchTo('frontend');
        sfContext::getInstance()->getViewCacheManager()->remove("module/action?&param1=value1&param2=value2","THE-DOMAIN-OF-YOUR-FRONTEND-APPLICATION-IF-U-USE-IT-IN-CACHE-KEYS");
        sfContext::switchTo('backend');
        

        【讨论】:

          【解决方案4】:

          我不认为没有“干净”的方式来完成这项工作,因为不同的应用程序在 symfony 中被视为完全独立的环境。 显然,这项工作可能会以一种更少或更脏的方式完成,选择你的方式来删除缓存/目录中的任何文件,运行 phing 任务 clear-cache (cc) 等...

          您可以简单地运行 rm -rf cache/*,但您可能会中断一些客户端请求。 更简单的方法是通过 passthru()exec()

          运行 symfony cc

          【讨论】:

            【解决方案5】:

            您可以创建 sfTask 的实例并像这样运行它(在 sf 1.2 中):

                $task = new sfCacheClearTask(sfContext::getInstance()->getEventDispatcher(), new sfFormatter());
            
                $arguments = array();
            
                // type can be one of: i18n, routing, template, module, config
                $options = array(
                    'frontend'  => 'app',
                    'routing'   => 'type', 
                    'prod'      => 'env',
                );
            
                $task->run($arguments, $options);
            

            有关所有可能的参数和选项,请参阅相应 sfTask 的源代码...

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-12-21
              相关资源
              最近更新 更多