Проблема автозагрузки в ZF2 и DOMPDF

Я использую Zend Loader отсюда в своем проекте, и я не могу настроить автозагрузчик Zend для DOMPDF, работая параллельно с автозагрузчиком dompdf. Есть ли способ установить Zend AutoLoad для настройки таким образом, чтобы он откатился на dompdf auotloader.

Я вижу некоторый пример, например, с использованием pushAutoLoader, но кажется, что он использует Zend более старую версию (вероятно, v < 2)

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

Какая альтернатива pushAutoloader() в загрузчике ZF2? Я не вижу такого способа сейчас.

Еще одна вещь, которую я не могу использовать '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

1 ответ

Это, кажется, незначительный сбой, только что обнаружил, что файл конфигурации 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');

ура:)

Другие вопросы по тегам