2013-08-28 1 views
0

Я вижу следующие записи в файле протокола:Magento DOMPDF самозарядные iisue

2013-08-28T17:45:09+00:00 ERR (3): Warning: include(DOMPDF.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /home/site/site.com/lib/Varien/Autoload.php on line 93 
    2013-08-28T17:45:09+00:00 ERR (3): Warning: include(DOMPDF.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /home/site/site.com/lib/Varien/Autoload.php on line 93 
    2013-08-28T17:45:09+00:00 ERR (3): Warning: include() [<a href='function.include'>function.include</a>]: Failed opening 'DOMPDF.php' for inclusion (include_path='/home/site/site.com/app/code/local:/home/site/site.com/app/code/community:/home/site/site.com/app/code/core:/home/site/site.com/lib:.:/usr/local/lib/php:/usr/local/php5/lib/pear') in /home/site/site.com/lib/Varien/Autoload.php on line 93 
    2013-08-28T17:45:09+00:00 ERR (3): Warning: include(Stylesheet.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /home/site/site.com/lib/Varien/Autoload.php on line 93 
    2013-08-28T17:45:09+00:00 ERR (3): Warning: include(Stylesheet.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /home/site/site.com/lib/Varien/Autoload.php on line 93 

Что может быть причиной того, что функция DOMPDF_autoload не выполняется? Спасибо.

ответ

1

Файл DOMPDF.php не входит ни в какую стандартную установку Magento. Похоже, вы или кто-то, кто работает в вашей системе, ввел в систему Magento какой-то пользовательский код.

Где-то в этом пользовательском коде, есть строка, которая выглядит как этот

$objet = new DOMPDF; 

Поскольку этот объект DOMPDF не был определен, PHP пытается запустить его через этот автозагрузчик. Автозагрузчик для классов Magento является «первым» в очереди, и рассматривает DOMPDF как класс Magento.

Это означает попытку включить файл DOMPDF.php. Поскольку этот класс не является классом Magento, автозагрузчик терпит неудачу. Автозагрузчик Magento не работает изящно, и вы получаете ошибки, которые видите.

Вам нужно убедиться, что вы правильно ввели все файлы в DOMPDF. Есть много способов сделать это - я бы связался с разработчиком, который сделал начальную работу, или разработчиком, который построил расширение, и предоставил им документ, как они включали эту библиотеку.

+1

Спасибо Алан. Ты указал мне в правильном направлении. Это библиотека, используемая расширением Ip/Pdffree. –

0

Я решил эту проблему, отредактировав /lib/dompdf6/include/autoload.inc.php. Содержание этого файла:

function DOMPDF_autoload($class) { 
     $filename = DOMPDF_INC_DIR . "/" . mb_strtolower($class) . ".cls.php"; 

     if (is_file($filename)) 
     require_once($filename); 
    } 
    spl_autoload_register('DOMPDF_autoload'); 

Это сообщение в блоге было очень полезным. http://sim.plified.com/2010/11/17/make-dompdf-work-with-magento/

Обратите внимание, что код работает на PHP версии 5.3.13.

+0

Какая версия dompdf? Полное содержание текущего файла autoload.inc.php намного больше: https://github.com/dompdf/dompdf/blob/master/include/autoload.inc.php – BrianS