protected function copySourceToTarget()
{
foreach ($iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($this->base_path . $this->source_path, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST) as $item) {
if ($item->isDir()) {
mkdir($this->base_path . $this->target_path . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
} else {
copy($item, $this->base_path . $this->target_path . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
}
}
}