ocramius/ocra-di-compiler

此包已被废弃且不再维护。未建议替代包。

Zend Framework 2 模块,将 Zend\Di 定义编译以加快 ZF2 应用的速度

dev-master 2015-07-15 07:16 UTC

This package is auto-updated.

Last update: 2022-02-01 12:20:49 UTC


README

一个编译模块,可让基于 Zend\Di\Di 的应用运行速度极快!

要求

安装

  1. "ocramius/ocra-di-compiler": "dev-master" 添加到您的 composer.json
  2. 运行 php composer.phar install
  3. 在您的 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 的实现,并耐心等待我实现此模块