我一直在努力如何最好地将类包含到我的PHP代码中.路径通常是一个问题,但几分钟前我发现这个问题显着有助于此.现在我正在阅读__autoload并认为它可以使我的应用程序开发过程变得更加容易.问题是我喜欢将文件夹结构保持为独立的功能区域,而不是将所有内容都放入通用/ lib文件夹中.因此,如果我覆盖自动加载以深入搜索包含所有子文件夹的类文件夹,我可以期待什么性能命中?
显然这将取决于文件夹结构的规模,深度和类的数量,但一般来说,我要求中等规模的项目会导致问题.
__autoload很棒,但是在递归搜索功能中声明所有文件的成本很高.您可能希望查看构建用于自动加载的文件树.在我的框架中,我一直为其类命名文件,并使用为数据缓存的映射.
查看http://trac.framewerk.org/cgi-bin/trac.fcgi/browser/trunk/index.php [ 死链接 ],从第68行开始,了解如何做到这一点.
编辑:为了更直接地回答您的问题,无需缓存,您可以预期中等到高流量的网站会受到性能影响.
一个常见的模式(Pear,Zend Framework作为示例......)是使类名反映路径,因此Db_Adapter_Mysql将位于/Db/Adapter/Mysql.php中,从添加到include-path的某个位置开始.