Autoloader Classmap
使用classmap,就可以在初始化的时间返回一个‘类-文件’对应的array,从而加速加载类的速度。默认的类加载是使用StandardAutoloader,正则表达式来将类名字转换成文件名再加载,试想一下每次加载都要跑一下性能不高的正则匹配,速度能有多快呢
这是默认的自动加载配置src/module/<app>/Module.php
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public
function getAutoloaderConfig(){ return
array( 'Zend\Loader\StandardAutoloader'
=> array( 'namespaces'
=> array( __NAMESPACE__ => __DIR__ .
'/src/' . __NAMESPACE__, ), ), 'Zend\Loader\ClassMapAutoloader'
=> array( __DIR__ .
'/config/autoload_classmap.php', ), );} |
将其修改成
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public
function getAutoloaderConfig(){ return
array( 'Zend\Loader\ClassMapAutoloader'
=> array( __DIR__ .
'/config/autoload_classmap.php', ), 'Zend\Loader\StandardAutoloader'
=> array( 'namespaces'
=> array( __NAMESPACE__ => __DIR__ .
'/src/' . __NAMESPACE__, ), ), );} |
然后使用ZF2自带的命令行工具生成classmap文件
|
1
|
$ php zf2/bin/classmap_generator.php -l <your-zf2-app-location> -o <your-zf2-app-location>/config |
之后就会在app/config目录下生成autoload_classmap.php文件。
Template Map
和classmap类似,这个会将‘模板-文件’的对应关系变成一个array并返回,免去了转换的过程。
同理,运行如下命令
|
1
|
$ php zf2/bin/templatemap_generator.php -l -l <your-zf2-app-location> -o <your-zf2-app-location>/config |
这样,template_map.php就会在app/config下生成。然后,在app/config/module.config.php的view_manager下加上以下那句话
|
1
2
3
|
'view_manager'
=> array( 'template_map'
=> include
__DIR__ .'/template_map.php', |
本文详细介绍了如何通过调整自动加载和模板映射配置来优化ZF2应用的性能,包括使用classmap加速类加载和生成autoload_classmap.php文件,以及使用template_map加速模板加载。
1567

被折叠的 条评论
为什么被折叠?



