0

我在我的项目中使用 Zend Loader,无法为 DOMPDF 配置 Zend 自动加载器,与 dompdf 自动加载器并行工作。有什么方法可以设置 zend 自动加载来配置,使其回退到 dompdf 自动加载器。

我看到了一些示例,例如使用 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()`

似乎stream_resolve_include_path()是在 php 5.3.2 中添加的

4

1 回答 1

0

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

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

并且修复将只是使用spl_autoload_registerbcz 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');

干杯:)

于 2013-03-11T08:43:48.687 回答