public static function removeDir($dir, $self = true)
 {
     try {
         $objects = scandir($dir);
         foreach ($objects as $object) {
             if ($object != '.' && $object != '..') {
                 if (strtolower(filetype($dir . '/' . $object)) == 'dir') {
                     FilesHelper::removeDir($dir . '/' . $object);
                 } else {
                     FilesHelper::deleteFile($dir . '/' . $object);
                 }
             }
         }
         reset($objects);
         if ($self) {
             FilesHelper::deleteFolder($dir);
         }
     } catch (Exception $e) {
         throw new PermissionsException('Unable to remove the directory: ' . $dir);
     }
 }