private function _prepareDir($config)
{
$directory = $this->generateDirectoryPath($config);
$chmod = $config->get('Cache.SerializerPermissions');
if (!is_dir($directory)) {
$base = $this->generateBaseDirectoryPath($config);
if (!is_dir($base)) {
trigger_error('Base directory ' . $base . ' does not exist,
please create or change using %Cache.SerializerPath', E_USER_WARNING);
return false;
} elseif (!$this->_testPermissions($base, $chmod)) {
return false;
}
if ($chmod === null) {
trigger_error('Base directory ' . $base . ' does not exist,
please create or change using %Cache.SerializerPath', E_USER_WARNING);
return false;
}
if ($chmod !== null) {
mkdir($directory, $chmod);
} else {
mkdir($directory);
}
if (!$this->_testPermissions($directory, $chmod)) {
trigger_error('Base directory ' . $base . ' does not exist,
please create or change using %Cache.SerializerPath', E_USER_WARNING);
return false;
}
} elseif (!$this->_testPermissions($directory, $chmod)) {
return false;
}
return true;
}