protected function delete($name, $cache_id, $compile_id, $exp_time)
    {
        // delete the whole cache
        if ($name === null && $cache_id === null && $compile_id === null && $exp_time === null) {
            // returning the number of deleted caches would require a second query to count them
            $query = $this->db->query('TRUNCATE TABLE output_cache');

            return - 1;
        }
        // build the filter
        $where = array();
        // equal test name
        if ($name !== null) {
            $where[] = 'name = ' . $this->db->quote($name);
        }
        // equal test compile_id
        if ($compile_id !== null) {
            $where[] = 'compile_id = ' . $this->db->quote($compile_id);
        }
        // range test expiration time
        if ($exp_time !== null) {
            $where[] = 'modified < DATE_SUB(NOW(), INTERVAL ' . intval($exp_time) . ' SECOND)';
        }
        // equal test cache_id and match sub-groups
        if ($cache_id !== null) {
            $where[] = '(cache_id = ' . $this->db->quote($cache_id)
                . ' OR cache_id LIKE ' . $this->db->quote($cache_id . '|%') . ')';
        }
        // run delete query
        $query = $this->db->query('DELETE FROM output_cache WHERE ' . join(' AND ', $where));

        return $query->rowCount();
    }
protected function delete($name, $cache_id, $compile_id, $exp_time)
    {
        // delete the whole cache
        if ($name === null && $cache_id === null && $compile_id === null && $exp_time === null) {
            // returning the number of deleted caches would require a second query to count them
            $query = $this->db->query('TRUNCATE TABLE output_cache');

            return - 1;
        }
        // build the filter
        $where = array();
        // equal test name
        if ($name !== null) {
            $where[] = 'name = ' . $this->db->quote($name);
        }
        // equal test compile_id
        if ($compile_id !== null) {
            $where[] = 'compile_id = ' . $this->db->quote($compile_id);
        }
        // range test expiration time
        if ($exp_time !== null) {
            $where[] = 'modified < DATE_SUB(NOW(), INTERVAL ' . intval($exp_time) . ' SECOND)';
        }
        // equal test cache_id and match sub-groups
        if ($cache_id !== null) {
            $where[] = '(cache_id = ' . $this->db->quote($cache_id)
                . ' OR cache_id LIKE ' . $this->db->quote($cache_id . '|%') . ')';
        }
        // run delete query
        $query = $this->db->query('DELETE FROM output_cache WHERE ' . join(' AND ', $where));

        return $query->rowCount();
    }
protected function delete ( $ name , $ cache_id , $ compile_id , $ exp_time ) { // delete the whole cache if ( $ name === null && $ cache_id === null && $ compile_id === null && $ exp_time === null ) { // returning the number of deleted caches would require a second query to count them $ query = $ this -> db -> query ( 'TRUNCATE TABLE output_cache' ) ; return - 1 ; } // build the filter $ where = array ( ) ; // equal test name if ( $ name !== null ) { $ where [ ] = 'name = ' . $ this -> db -> quote ( $ name ) ; } // equal test compile_id if ( $ compile_id !== null ) { $ where [ ] = 'compile_id = ' . $ this -> db -> quote ( $ compile_id ) ; } // range test expiration time if ( $ exp_time !== null ) { $ where [ ] = 'modified < DATE_SUB(NOW(), INTERVAL ' . intval ( $ exp_time ) . ' SECOND)' ; } // equal test cache_id and match sub-groups if ( $ cache_id !== null ) { $ where [ ] = '(cache_id = ' . $ this -> db -> quote ( $ cache_id ) . ' OR cache_id LIKE ' . $ this -> db -> quote ( $ cache_id . '|%' ) . ')' ; } // run delete query $ query = $ this -> db -> query ( 'DELETE FROM output_cache WHERE ' . join ( ' AND ' , $ where ) ) ; return $ query -> rowCount ( ) ; }
Delete content from cache

@param  string       $name       template name
@param  string       $cache_id   cache id
@param  string       $compile_id compile id
@param  integer|null $exp_time   seconds till expiration or null

@return integer      number of deleted caches
Delete content from cache