ZF2和DOMPDF自动加载问题

时间:2013-03-11 08:30:35

标签: php zend-framework2 dompdf zend-loader

我在我的项目中使用来自here的Zend Loader,我无法为DOMPDF配置Zend自动加载器,与dompdf自动加载器并行工作。有没有办法设置zend自动加载配置,以便它回退到dompdf auotloader。

我看到一些例子,例如使用pushAutoLoader,但这似乎是使用Zend旧版本(v< 2可能)

    require_once('dompdf/dompdf_config.inc.php' );
    $autoloader = Zend_Loader_Autoloader::getInstance();
    $autoloader->pushAutoloader('DOMPDF_autoload', '');

ZF2 Loader中pushAutoloader()的替代方法是什么?我现在没有看到任何这样的方法。

我还不能使用'fallback_autoloader' => true,选项,因为我使用的是php 5.3.1,它给了我错误:

  `Call to undefined function Zend\Loader\stream_resolve_include_path()`

看起来{5.3}中添加了stream_resolve_include_path()

1 个答案:

答案 0 :(得分:0)

这似乎是一个小故障,只是发现DOMPDF配置文件使用过时的方式来注册其自动加载器,例如

if ( !function_exists("__autoload") ) {
  /**
   * Default __autoload() function
   *
   * @param string $class
   */
  function __autoload($class) {
    DOMPDF_autoload($class);
  }
}

并且修复只是使用spl_autoload_register bcz php spl_autoload_register vs __autoload?并将上面的代码替换为一行,只需对自动加载功能进行少量更新

function DOMPDF_autoload($class) { 
  //don't check for namespaced files/classes   
  if(strpos($class, "\\") > 0) return;

  if($class=='UFPDF') return ;

  $filename = mb_strtolower($class) . ".cls.php";

  require(DOMPDF_INC_DIR . "/$filename");
}

spl_autoload_register('DOMPDF_autoload');
欢呼:)