DmitryDulepov\Realurl\Cache\DatabaseCache::expireCache PHP Method

expireCache() public method

Expires cache for the given page and language.
public expireCache ( integer $pageId, integer | null $languageId = null ) : void
$pageId integer
$languageId integer | null
return void
    public function expireCache($pageId, $languageId = null)
    {
        $expirationTime = time() + 30 * 24 * 60 * 60;
        $this->databaseConnection->sql_query('START TRANSACTION');
        $this->databaseConnection->exec_UPDATEquery('tx_realurl_pathdata', 'page_id=' . (int) $pageId . (!is_null($languageId) ? ' AND language_id=' . (int) $languageId : '') . ' AND expire=0', array('expire' => $expirationTime));
        if (is_null($languageId)) {
            $this->databaseConnection->exec_UPDATEquery('tx_realurl_urldata', 'page_id=' . (int) $pageId . ' AND expire=0', array('expire' => $expirationTime));
        } else {
            $rows = $this->databaseConnection->exec_SELECTgetRows('*', 'tx_realurl_urldata', 'page_id=' . (int) $pageId . ' AND expire=0');
            foreach ($rows as $row) {
                $requestVariables = @json_decode($row['request_variables'], TRUE);
                if (is_array($requestVariables) && (int) $requestVariables['L'] === (int) $languageId) {
                    $this->databaseConnection->exec_UPDATEquery('tx_realurl_urldata', 'uid=' . (int) $row['uid'], array('expire' => $expirationTime));
                }
            }
        }
        $this->databaseConnection->sql_query('COMMIT');
    }