PHP中的include

这几天在做一个PHP的模板引擎,这是一个有许多对象的东西,但是在PHP中没有命名空间,所以一般会采用PEAR的命名方法来组织类,这样的话就有许多的类分布在大量的小文件上,这样在加载的时候会造成性能的损失。为了解决这个问题我研究了一下include这个东西,通过查看源码和一些网络上的资料,发现在include和eval在底层实际是同一个东西,如果在一个文件中加载所有的类,这样只要包含这个文件就能获得所有的类了,还能保存不会存在类的命名空间问题。如果再通过apc这类中间码缓存系统,性能应该会更好。

实际上,在ZF1.7中的Zend_Loader就有这样的缓存方案,并且在官方文档的性能优化章节也说明了。

分享到: 更多