public function _replyToCompressDirectory(ZipArchive $oZip, $sSourceDirPath, array $aCallbacks = array(), $bIncludeDir = false, array $aAdditionalSourceDirs = array())
{
$_sArchiveRootDirName = '';
if ($bIncludeDir) {
$_sArchiveRootDirName = $this->_getMainDirectoryName($sSourceDirPath);
$this->_addEmptyDir($oZip, $_sArchiveRootDirName, $aCallbacks['directory_name']);
}
array_unshift($aAdditionalSourceDirs, $sSourceDirPath);
$_aSourceDirPaths = array_unique($aAdditionalSourceDirs);
$this->_addArchiveItems($oZip, $_aSourceDirPaths, $aCallbacks, $_sArchiveRootDirName);
return $oZip->close();
}