php – 减少包含文件的数量
作者:互联网
我的基于Zend Framework和Doctrine的应用程序包括>每个请求上有300个文件.它们大多是相同的文件.
这是一个非常巨大的开销.部分由Zend_Cache(和Memcache)解决,但并非所有页面都可以缓存.
>如何减少这个数字?怎么加快?
Doctrine有一个compile the needed files选项,对于生产服务器和应用程序的最终版本来说似乎很合理.
我的计划是编译其他库(我已经删除了所有require_once).
>这项任务有什么工具吗?也许一些缓存驱动程序自动执行?如何设置它们?
解决方法:
最好的选择是使用APC或Zend_Accelerator.但是你仍然可以制作这些将类合并为一个文件的“编译”脚本.这将所需的IO降至最低.不幸的是,您还需要重写自动加载过程,以便它查找适当的文件.您通常可以将公共类压缩在一起(Zend_Form Elements Decorators,常用验证器,Request Response Router Controller,Zend_Db适配器Zend_Db_Select等).主要是每个请求总是使用的类可以很容易地压缩并手动包含在一个文件中.最好的方法是添加调试调用,将所有包含的文件(http://www.php.net/get_included_files)保存到DB中,然后:
SELECT * FROM files GROUP BY filename WHERE COUNT(filename) = $numOfRequests
结果中的所有文件都可以安全地合并到一个文件中,并在bootstraping之前包含:)
标签:php,caching,doctrine,zend-framework,autoloader 来源: https://codeday.me/bug/20190701/1341941.html