HTMLPurifier_DefinitionCache_Serializer::cleanup PHP Method

cleanup() public method

public cleanup ( HTMLPurifier_Config $config ) : boolean
$config HTMLPurifier_Config
return boolean
    public function cleanup($config)
    {
        if (!$this->_prepareDir($config)) {
            return false;
        }
        $dir = $this->generateDirectoryPath($config);
        $dh = opendir($dir);
        // See #49 (and above).
        if (false === $dh) {
            return false;
        }
        while (false !== ($filename = readdir($dh))) {
            if (empty($filename)) {
                continue;
            }
            if ($filename[0] === '.') {
                continue;
            }
            $key = substr($filename, 0, strlen($filename) - 4);
            if ($this->isOld($key, $config)) {
                unlink($dir . '/' . $filename);
            }
        }
        return true;
    }

Usage Example

 function testCleanupOnlySameID()
 {
     $cache = new HTMLPurifier_DefinitionCache_Serializer('Test');
     $config1 = $this->generateConfigMock('serial1');
     $config1->version = '1.0.0';
     $config1->setReturnValue('get', 1, array('Test', 'DefinitionRev'));
     $def1 = $this->generateDefinition(array('info' => 1));
     $config2 = $this->generateConfigMock('serial2');
     $config2->version = '1.0.0';
     $config2->setReturnValue('get', 34, array('Test', 'DefinitionRev'));
     $def2 = $this->generateDefinition(array('info' => 3));
     $cache->set($def1, $config1);
     $cache->cleanup($config1);
     $this->assertEqual($def1, $cache->get($config1));
     // no change
     $cache->set($def2, $config2);
     $cache->cleanup($config2);
     $this->assertEqual($def1, $cache->get($config1));
     $this->assertEqual($def2, $cache->get($config2));
     $cache->flush($config1);
 }