WEBcoast Logo

Automatic cache clearing, when editing any record

In a recent project I wanted to clear caches for pages, that display certain records, when one of these records was updated. In this case it was courses and the available sessions.

I found out, that TYPO3 already does some automatic cache clearing, when saving or hiding/unhiding records, based on tags build of the table name and the uid, like `{tableName}_{uid}`. So the only thing I needed to was to update my controller code to add cache tags:

class CourseController extends ActionController {

    public function listAction() {
        $cacheTags = [];

        // Fetch all courses
        $courses = $this->courseRepository->findAll();

        // Build cache tags
        foreach ($courses as $course) {
            $cacheTags[] = 'tx_course_domain_model_course_' . $course->getUid();

        // Add cache tags to page cache

        $this->view->assign('courses', $courses);


     * @return TypoScriptFrontendController
    protected function getTypoScriptFrontendController(): TypoScriptFrontendController
        return $GLOBALS['TSFE'];

This was tested with TYPO3 CMS 10.4.