Включить HTMLpurifier с Zend_Loader

Я хочу использовать HTMLpurifier в сочетании с Zend Framework. Я бы хотел загрузить класс и его файлы с помощью Zend_Loader. Как бы вы его включили? Вы бы просто использовали HTMLPurifier.auto.php или знаете, как лучше это сделать?

Related of "Включить HTMLpurifier с Zend_Loader"

Я использую HTML Purifier в качестве фильтра в моем проекте Zend Framework. Вот измененная версия моего класса:

require_once 'HTMLPurifier.includes.php'; require_once 'HTMLPurifier.autoload.php'; class My_Filter_HtmlPurifier implements Zend_Filter_Interface { protected $_htmlPurifier = null; public function __construct($options = null) { // set up configuration $config = HTMLPurifier_Config::createDefault(); $config->set('HTML.DefinitionID', 'My Filter'); $config->set('HTML.DefinitionRev', 1); // increment when configuration changes // $config->set('Cache.DefinitionImpl', null); // comment out after finalizing the config // Doctype $config->set('HTML.Doctype', 'XHTML 1.0 Transitional'); // configure caching $cachePath = APPLICATION_PATH . '/../cache/htmlpurifier'; if (!is_dir($cachePath)) { mkdir($cachePath, 0755, true); } $cachePath = realpath($cachePath); $config->set('Cache.SerializerPath', $cachePath); if (!is_null($options)) { //$config = HTMLPurifier_Config::createDefault(); foreach ($options as $option) { $config->set($option[0], $option[1], $option[2]); } } $this->_htmlPurifier = new HTMLPurifier($config); } public function filter($value) { return $this->_htmlPurifier->purify($value); } } 

Если я не понимаю вопрос (или HTMLpurifier). Если у вас запущен Zend_Loader и он настроен на автозагрузку.

 require_once('Zend/Loader.php'); Zend_Loader::registerAutoload(); 

Или что-то в этом роде. Поместите класс HTMLpurifier в каталог вашей библиотеки. Я просто не уверен, что это фактическое имя класса.

Вы можете просто поместить файл класса в библиотечный каталог и вызвать его по имени, или, может быть, бросить его в отдельный пакет.

Примеры

 // SITE/library/Zend/Auth.php class Zend_Auth { } // SITE/library/htmlpurifier.php class htmlpurifier { } // SITE/library/misc/htmlpurifier.php class Misc_HTMLpurifier { } 

Имеют смысл?

вы можете зарегистрировать класс автозагрузчика, используя класс Zend_Loader. когда вы вызываете метод registerAutoLoad () без каких-либо параметров, вы фактически регистрируете Zend_Loader как автозагрузчик. так:

 Zend_Loader::registerAutoLoad(); 

// равно: Zend_Loader :: registerAutoLoad ('Zend_Loader'), true);

Zend_Loader пытается загрузить классы, используя соглашение об именах Zend Framework, которое выглядит следующим образом:

  • каждый класс определяется в отдельном файле
  • каждое имя класса начинается с заглавной буквы
  • подчеркивание в имени класса, означает уровень каталогов.

поэтому, если «Zend_Loader» – это имя класса, оно определяется в файле «Loader.php» в каталоге «Zend» на вашем пути. вам PHP может загрузить этот класс из файла Zend / Loader.php

если ваши классы следуют этому соглашению об именах, они могут автоматически загружаться с использованием одного и того же автозагрузчика. иначе вам нужно определить свой автозагрузчик. написать лебедку класса автозагрузчика можно расширить Zend_Loader и определить функциональность загрузки, чтобы она загружала классы с другими соглашениями об именах. затем зарегистрируйте свой автозагрузчик с помощью Zend_Loader. как это:

 Zend_Loader::registerAutoLoad('myLoader',true); 

Я поместил содержимое библиотеки архива HTMLPurifier в свой путь к библиотеке. Поэтому у меня есть эта структура каталогов:

 library/ HTMLPurifier\ HTMLPurifier.auto.php ... HTMLPurifier.safe-includes.php 

И затем я помещаю это поверх файла, где я использую HTMLPurifier:

 require_once 'HTMLPurifier.safe-includes.php'; 

Уродливый, но он работает.