<?php

namespace Application\Service\Extension\Helper;

class FileHelper
{
    /**
     * @param string $directory
     * @return array
     */
    public static function getFiles(string $directory): array
    {
        $files = [];

        // 打开目录
        if ($handle = opendir($directory)) {
            // 遍历目录中的文件和子目录
            while (false !== ($item = readdir($handle))) {
                // 排除当前目录(.)和父目录(..)
                if ($item != '.' && $item != '..') {
                    $path = $directory . DIRECTORY_SEPARATOR . $item;
                    // 如果是目录，则递归调用该方法获取子目录中的文件
                    if (is_dir($path)) {
                        $files = array_merge($files, self::getFiles($path));
                    } else {
                        // 如果是文件，则将文件路径添加到结果数组中
                        $files[] = $path;
                    }
                }
            }
            // 关闭目录句柄
            closedir($handle);
        }

        return $files;
    }
}