PHP - file_exists还是数组缓存?

时间:2011-02-22 11:23:27

标签: php caching file-exists

我有一个PHP代码,如果存在则包含多个文件。它可能包含150个文件。

在这种情况下使用file_exists是否很慢?我应该构建一个数组来创建文件结构的缓存吗?

是否有其他方法可以对文件结构进行某种缓存?

3 个答案:

答案 0 :(得分:1)

在提供单一请求期间

150个文件?
如果是这样,你必须减少这个数字,不是因为150个file_exists,而是因为150包括。

如果它取决于所请求的参数,并且每个请求为3-4,那就没问题。

但您不能将常规数组用作缓存。 PHP不会在请求之间保留变量。您没有发明这样的缓存,而是重新考虑您的应用程序结构。

答案 1 :(得分:1)

这是一个非常糟糕的主意。有两种行之有效的方法。

  • 使用自动加载器动态解析第一个实例化的类文件位置通常需要严格的文件夹结构(ala Zend Framework)
  • 以递归方式查找所有相关类文件,并生成类名到位置的缓存索引。所以在第一个实例化中你有一个更简单的自动加载器,它查看缓存的索引并根据类名匹配文件的位置然后包含它(ala Symfony1)

答案 2 :(得分:-3)

@include($file)

include在尝试打开文件时隐式检查文件是否存在。

以下评论:

  • 这将关闭整个包含文件中的错误检查。
  • 包含不存在的文件比包含一个存在的文件要慢一些,并且明显慢于file_exists检查。