В общем-то, спасибо за подсказки. Файл включил, но теперь сама библиотека никак не хочет работать.
Ругается след. образом
Цитата:
ErrorException [ Fatal Error ]: Call to undefined method Debug::getInstance()
Проверил, действительно, в файле CreateDocx происходит вызов этого метода в указанной в ошибке строке:
Код:
$this->_debug = Debug::getInstance();
В самом верху этого файла (CreateDocx), есть след. включения:
Код:
require_once dirname(__FILE__) . '/AutoLoader.php';
AutoLoader::load();
require_once dirname(__FILE__) . '/Phpdocx_config.php';
Я уже переименовал расширения всех файлов на php. Проверил в соседнем домене нативным php, в самом коде библиотеке во всех местах где использовалось включение файлов с .inc, тоже переписал в .php, там все работает.
Теперь в Kohana, как я понял не отрабатывает метод AutoLoader::load();
Вот его код (Автолоадера):
Код:
<?php
/**
* Autoloader
*
* @category Phpdocx
* @package loader
* @copyright Copyright (c) Narcea Producciones Multimedia S.L.
* (http://www.2mdc.com)
* @license LGPL
* @version 3.0
* @link http://www.phpdocx.com
* @since File available since Release 3.0
*/
class AutoLoader
{
/**
* Main tags of relationships XML
*
* @access public
* @static
*/
public static function load()
{
spl_autoload_register(array('AutoLoader', 'autoloadGenericClasses'));
spl_autoload_register(array('AutoLoader', 'autoloadPhpdocx'));
spl_autoload_register(array('AutoLoader', 'autoloadLog4php'));
spl_autoload_register(array('AutoLoader', 'autoloadTcpdf'));
spl_autoload_register(array('AutoLoader', 'autoloadPdf'));
spl_autoload_register(array('AutoLoader', 'autoloadDompdf'));
spl_autoload_register(array('AutoLoader', 'autoloadMht'));
}
/**
* Autoload dompdf
*
* @access public
* @param string $className Class to load
*/
public static function autoloadDompdf($className)
{
$pathDompdf = dirname(__FILE__) . '/../pdf/dompdf_config.inc.php';
if (file_exists($pathDompdf)) {
require_once $pathDompdf;
}
}
/**
* Autoload phpdocx
*
* @access public
* @param string $className Class to load
*/
public static function autoloadGenericClasses($className)
{
$pathPhpdocx = dirname(__FILE__) . '/' . $className . '.php';
if (file_exists($pathPhpdocx)) {
require_once $pathPhpdocx;
}
}
/**
* Autoload log4php
*
* @access public
* @param string $className Class to load
*/
public static function autoloadLog4php($className)
{
$pathLogphp = dirname(__FILE__) . '/../lib/log4php/'
. $className . '.php';
if (file_exists($pathLogphp)) {
require_once $pathLogphp;
}
}
/**
* Autoload mht
*
* @access public
* @param string $className Class to load
*/
public static function autoloadMht($className)
{
$pathMht = dirname(__FILE__) . '/../lib/'
. $className . '.php';
if (file_exists($pathMht)) {
require_once $pathMht;
}
}
/**
* Autoload phpdocx
*
* @access public
* @param string $className Class to load
*/
public static function autoloadPdf($className)
{
$pathPDF = dirname(__FILE__) . '/pdf/' . $className . '.inc';
if (file_exists($pathPDF)) {
require_once $pathPDF;
}
$pathTCPDF = dirname(__FILE__) . '/../pdf/tcpdf/tcpdf.php';
if (file_exists($pathTCPDF)) {
require_once $pathTCPDF;
}
$pathFPDI = dirname(__FILE__) . '/../lib/fpdi/fpdi.php';
if (file_exists($pathFPDI)) {
require_once $pathFPDI;
}
}
/**
* Autoload phpdocx
*
* @access public
* @param string $className Class to load
*/
public static function autoloadPhpdocx($className)
{
$pathPhpdocx = dirname(__FILE__) . '/docx/' . $className . '.php';
if (file_exists($pathPhpdocx)) {
require_once $pathPhpdocx;
}
}
/**
* Autoload Tcpdf
*
* @access public
* @param string $className Class to load
*/
public static function autoloadTcpdf($className)
{
$pathTcpdf = dirname(__FILE__) . '/../pdf/class.tcpdf.php';
if (file_exists($pathTcpdf)) {
require_once $pathTcpdf;
}
}
}
Как я понимаю, проблема в работе след. метода:
Код:
public static function load()
{
spl_autoload_register(array('AutoLoader', 'autoloadGenericClasses'));
spl_autoload_register(array('AutoLoader', 'autoloadPhpdocx'));
spl_autoload_register(array('AutoLoader', 'autoloadLog4php'));
spl_autoload_register(array('AutoLoader', 'autoloadTcpdf'));
spl_autoload_register(array('AutoLoader', 'autoloadPdf'));
spl_autoload_register(array('AutoLoader', 'autoloadDompdf'));
spl_autoload_register(array('AutoLoader', 'autoloadMht'));
}
Самое сомнительное здесь это использование spl_autoload_register(); Уместно ли использование этой замечательной функции в Kohana? Или т.к. она уже используется в кохане (умные поправят, возможно и не используется аутолоадер), то поэтому сей autoloader и не работает?