Php glob()来构建文件数组,还是硬代码数组?速度是关键,但自动化很好

Php glob()来构建文件数组,还是硬代码数组?速度是关键,但自动化很好,php,arrays,api,directory,scandir,Php,Arrays,Api,Directory,Scandir,抱歉,标题没有说明,我不确定该如何命名:-) 我已经编写了一个API,可以从服务器上的目录加载所需的javascript库。目录有特定的格式,唯一不同的是每个库目录中的文件名格式 目录格式 _js/\u source/\u library\u name\u here/file\u name\u here.js e、 g /_js/_source/_fancybox/jQuery.lightbox-0.5.js 阵列(当前硬编码) 目前,我将单独的库存储在一个数组中(硬编码),如下所示: 潜在替代

抱歉,标题没有说明,我不确定该如何命名:-)

我已经编写了一个API,可以从服务器上的目录加载所需的javascript库。目录有特定的格式,唯一不同的是每个库目录中的文件名格式

目录格式 _js/\u source/\u library\u name\u here/file\u name\u here.js

e、 g

/_js/_source/_fancybox/jQuery.lightbox-0.5.js

阵列(当前硬编码) 目前,我将单独的库存储在一个数组中(硬编码),如下所示:

潜在替代方案 如果
$js\u libraries
数组是通过扫描'\u source'目录并像那样填充数组而自动构建的,那么该API将更加动态。我会用这样的东西(未测试,只是一个例子!)

function gather_files($directory){
    $files_and_folders = scandir($directory);
    foreach($files_and_folders as $value){
        if($value != '.' && $value != '..'){
            if(is_dir($directory.'/'.$value)){
                listFolderFiles($dir.'/'.$ff);
            }
        }
    }
}

$js_libraries = gather_files(dirname(__FILE__));
以上内容尚未完成,只是想说明我根据目录内容自动构建数组的意思

我的问题 很简单,这个API的关键是速度,因为它将打包/缩小(通过PHP动态)的javascript文件返回到HTML页面,因此不能有任何延迟,因为这将延迟页面的启动我想知道的是,当这个目录中有很多库时,自动方法是否会变慢?我应该坚持使用硬编码数组吗?

始终使用基准测试 就实际速度而言,列出深层文件系统层次结构可能比其他任何东西都更受IO约束,但请不要相信我,或者不要相信自己的直觉,始终基准测试


至于优化:速度不是唯一的选项,您可以选择并使用另一个,或将另一个(和的自定义子类)组合起来,以获得一个对象,该对象可以在
foreach
中使用,并返回所需的文件,一次返回一个。

您看过该函数了吗?当然可以,我收集文件的方式不是很相关,事实上我写的代码很糟糕。我很可能会使用
glob()
函数。我只是想知道它是否会明显变慢:-)只有一种方法可以确定速度,对其进行基准测试。为什么不进行测试看看呢?过早优化是万恶之源。如果以后需要性能提升,请将从
glob()
获取的阵列转储到一个文件中,然后从该文件中读取。
function gather_files($directory){
    $files_and_folders = scandir($directory);
    foreach($files_and_folders as $value){
        if($value != '.' && $value != '..'){
            if(is_dir($directory.'/'.$value)){
                listFolderFiles($dir.'/'.$ff);
            }
        }
    }
}

$js_libraries = gather_files(dirname(__FILE__));