Проблема автозагрузки в 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');
ура:)