. */ namespace SP\Util; use FilesystemIterator; use RecursiveDirectoryIterator; use RecursiveIteratorIterator; use SP\DataModel\FileData; /** * Class FileUtil * * @package SP\Util */ class FileUtil { /** * @var array */ public static $imageExtensions = ['JPG', 'PNG', 'GIF']; /** * Removes a directory in a recursive way * * @param $dir * @return bool * @see https://stackoverflow.com/a/7288067 */ public static function rmdir_recursive($dir) { if (!is_dir($dir)) { return true; } $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST); foreach ($it as $file) { if ($file->isDir()) rmdir($file->getPathname()); else unlink($file->getPathname()); } return rmdir($dir); } /** * @param FileData $FileData * @return bool */ public static function isImage(FileData $FileData) { return in_array(mb_strtoupper($FileData->getExtension()), self::$imageExtensions, true); } }