0

使用Zend 框架工具 (ZFTool)可以使应用程序更快,使用基于类映射(而不是命名空间)的类加载(s. here)。

$ cd /path/to/my_project
$ cd module/MyModule/
$ zf classmap generate . ./autoload_classmap.php --overwrite

是否有可能/如何对库模块(Zend 库和自定义库)做同样的事情?

4

2 回答 2

2

类映射生成器并不特定于 Zend 命名空间下的类,它会为它找到的任何类生成一个类映射。您可以将路径传递给脚本以使其改为搜索您的库文件夹:

zf 类映射生成 . ./autoload_classmap.php --overwrite --library /path/to/my_project/library

有关参数的完整列表,请参阅文档

于 2013-10-14T18:28:11.303 回答
1

这样做实际上并没有什么好处,因为自动加载文件会变得太大。但是,我可以向您建议的是使用 Evan Coury 提供的名为EdpSuperluminal的模块。

该模块的作用是“记录”在给定请求中调用的所有类,并将它们写入类映射文件。

此模块的唯一缺点是,您必须创建应用程序的每个可能的请求,并附加一个特殊的查询参数。这有点麻烦,但值得。通过这种方式,您可以将 Classmap 的大小减少到只有 Zend 库以及您实际使用的其他供应商库的大小。这样你的类图就不会过大。

除此之外,autoload_classmap.php/vendor目录上使用标准应该可以工作。

最后要注意的一点:由于您很可能通过 Composer 包含库(Zend、Doctrine、其他...),因此 Composer 本身会创建一种 Classmap,但仅特定于 Vendor-Namespaces。IE“Zend”、“Doctrine”、“Mongo”等。 Composer 仅出于上述原因才为顶级命名空间执行此操作。

于 2013-10-14T18:25:56.097 回答