Загрузчик Орды - Как пользоваться?
Я новичок в автозапуске на PHP и у меня есть требование к Horde_Text_Diff в моем последнем проекте. Я использую Horde_Autoloader для автоматической загрузки необходимых файлов, однако я использую его неправильно. Насколько я могу судить по Google, в Интернете нет ни одного примера того, как это сделать на самом деле. Я в значительной степени учусь на 100 % на примере, и поэтому здесь я столкнулся с препятствием.
Это то, что у меня есть до сих пор...
require_once( Horder/Autoloader.php );
$autoloader = new Horde_Autoloader();
Пока никаких проблем, объект создан ...
$text_diff = $autoloader->loadClass( 'Hoard_Text_Diff' );
Это не работает, как я здесь чисто предполагаю.
Что привело меня туда, где я нахожусь, было этот пост.
1 answers
Я посмотрел исходный код на https://github.com/dereuromark/tools/tree/master/Vendor/Horde.
К Horde_Autoloader
не прикреплен картограф, и вы используете его неправильно. В автозагрузчике необходимо добавить classPathMapper. В каталоге Horde / Autoloader / ClassPathMapper
есть разные пути к классам.
require_once 'Horde/Autoloader.php';
require_once 'Horde/Autoloader/ClassPathMapper.php';
require_once 'Horde/Autoloader/ClassPathMapper/Default.php';
$autoloader = new Horde_Autoloader();
$autoloader->addClassPathMapper(new Horde_Autoloader_ClassPathMapper_Default(__DIR__.'PATH_TO_HORDE_FOLDER'));
$autoloader->registerAutoloader();
// if path is correct autoloader should work
$diff = new Horde_Text_Diff();
Существует также загрузчик по умолчанию, который автоматически регистрирует все пути из вашего include_path. Это может быть немного накладно!
// set the current path to your include_path
set_include_path(__DIR__.'PATH_TO_HORDE_FOLDER');
// if you require the default autoloader it will get initialized automatically
require_once 'Horde/Autoloader/Default.php';
// use the lib
$diff = new Horde_Text_Diff();
ИЗМЕНИТЬ:
Это работает на меня. Следующий код находится в C:\xampp\htdocs\horde\index.php
. Библиотека орды находится в подпапке lib
.
// this file:
// C:\xampp\htdocs\horde\index.php
// horde folder structure
// C:\xampp\htdocs\horde\lib\Horde\Autoloader
// C:\xampp\htdocs\horde\lib\Horde\Text
require_once __DIR__.'/lib/Horde/Autoloader.php';
require_once __DIR__.'/lib/Horde/Autoloader/ClassPathMapper.php';
require_once __DIR__.'/lib/Horde/Autoloader/ClassPathMapper/Default.php';
$autoloader = new Horde_Autoloader();
$autoloader->addClassPathMapper(new Horde_Autoloader_ClassPathMapper_Default(__DIR__.'/lib'));
$autoloader->registerAutoloader();
$compare = array(
array(
'foo',
'bar',
'foobar'
),
array(
'foo',
'bar',
'foobaz'
),
);
$diff = new Horde_Text_Diff('auto', $compare);
echo '<pre>';
print_r($diff->getDiff());
echo '</pre>';