private function _addArchiveItems($oZip, $aSourceDirPaths, $aCallbacks, $sRootDirName = '')
{
$sRootDirName = $sRootDirName ? rtrim($sRootDirName, '/') . '/' : '';
foreach ($aSourceDirPaths as $_isIndexOrRelativeDirPath => $_sSourceDirPath) {
$_sSourceDirPath = $this->_getSanitizedSourcePath($_sSourceDirPath);
$_sInsideDirPrefix = is_integer($_isIndexOrRelativeDirPath) ? '' : $_isIndexOrRelativeDirPath;
if ($_sInsideDirPrefix) {
$this->_addRelativeDir($oZip, $_sInsideDirPrefix, $aCallbacks['directory_name']);
}
$_oFilesIterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($_sSourceDirPath), RecursiveIteratorIterator::SELF_FIRST);
foreach ($_oFilesIterator as $_sIterationItem) {
$this->_addArchiveItem($oZip, $_sSourceDirPath, $_sIterationItem, $aCallbacks, $sRootDirName . $_sInsideDirPrefix);
}
}
}