代码之家  ›  专栏  ›  技术社区  ›  Felix

typo3扩展删除缓存和会话

  •  -1
  • Felix  · 技术社区  · 6 年前

    嗨,我有typo3分机,这是一家小商店。

    我想要的是删除整个会话并在一个命令后缓存。

    如何在控制器中以编程方式执行此操作?

    提前谢谢。

    更新:

    您的权利,刷新完全缓存不好,我只是重新读取了我的代码;)我想这就足够让那些胆小鬼清白了。

    我设置了以下值:

    $order_data = array();
    $order_data = $GLOBALS['TSFE']->fe_user->getKey('ses', USER_ORDER);
    $order_data['firstname'] = $_COOKIE["firstname"];
    $order_data['lastname'] = $_COOKIE["lastname"];
    $order_data['email'] = $_COOKIE["email"];
    $GLOBALS['TSFE']->fe_user->setKey('ses', USER_ORDER, $order_data);
    $GLOBALS['TSFE']->storeSessionData();
    

    删除FE用户和user\u订单数据的好方法是什么?

    谢谢

    1 回复  |  直到 6 年前
        1
  •  2
  •   Christian Kuhn    6 年前

    注意:在运行时由用户FE单击启动刷新整个缓存是一个非常糟糕的主意。它不仅会严重降低系统的速度,如果必须这样做,您还应该更好地修复扩展,使其不依赖于这些东西。你在请求一个邪恶的黑客。

    要回答您的问题,最残酷的变体是“GeneralUtility::makeInstance(CacheManager::class)->flushCaches();”。不,请不要这样做。这与“绿色IT”正好相反;)相反,请在缓存中正确地进行标记,刷新真正需要的内容(flushByTag()),并查看USER/USER\u INT处理。

    对于会话内容,SessionManager类及其后面的类应该允许操纵会话。