ocramius / ocra-di-compiler
此包已被废弃且不再维护。未建议替代包。
Zend Framework 2 模块,将 Zend\Di 定义编译以加快 ZF2 应用的速度
dev-master
2015-07-15 07:16 UTC
Requires
- php: >=5.3.3
- zendframework/zendframework: >=2.0.0beta4
This package is auto-updated.
Last update: 2022-02-01 12:20:49 UTC
README
一个编译模块,可让基于 Zend\Di\Di
的应用运行速度极快!
要求
- ZendFramework 2.
- 任何类似于 ZendSkeletonApplication 的应用。
安装
- 将
"ocramius/ocra-di-compiler": "dev-master"
添加到您的composer.json
- 运行
php composer.phar install
- 在您的
config/application.config.php
中通过将OcraDiCompiler
添加到modules
中启用该模块
或
php composer.phar ocramius/ocra-di-compiler
功能
OcraDiCompiler 通过尝试将编译后的 Zend\Di\Di
类写入您的 data
目录与您的应用的引导过程交互。编译后的 Di 容器将在您的应用的 bootstrap
事件之后可用。在此之前,任何尝试访问 Di 都将获取默认的一个。您可以通过覆盖 config/module.config.php
中的值来自定义编译后的 Di 类的写入位置(以及读取位置),该文件位于 config/autoload
目录下的您的配置文件中。
性能比较
假设一个默认设置的应用程序,其中启用了 doctrine/DoctrineORMModule
,并且有以下类
<?php class MyClass { public function __construct(\Doctrine\ORM\EntityManager $em) { } }
以下代码
<?php $serviceManager->get('Application')->bootstrap(); $serviceManager->get('Di')->get('MyClass');
应该会明显更快(请留下您的反馈和您的个人结果!)。
致谢
非常感谢 Sascha Oliver Prolic,他编写了 DiProxyGenerator
的实现,并耐心等待我实现此模块