Zend Framework - HTMLPurifier Autoloader
HTMLPurifier hat ein etwas komplexeres Autoloading-Verhalten wie das Zend Framework, dabei werden z.b. für Sprachen andere Pfadstrukturen verwendet wie bei normalen Klassen. Da ich HTMLPurifier für das Filtern der Kommentare nutze hab ich auch hierfür einen Loader gebraucht der im Aufbau genauso funktioniert wie der für Komponenten des ezComponents-Framework, der Autoloader von HTMLPurifier wird einmalig händisch includiert und dann wird diesem der Klassennamen immer weitergegeben um die Klasse zu laden.
Einfach in einer Init-Methode des Bootstraps mit folgendem Code den Loader einbinden:
$autoLoader = Zend_Loader_Autoloader::getInstance(); $autoLoader->pushAutoloader(new App_Loader_Autoloader_HTMLPurifier(), 'htmlpurifier');
Dann werden alle Klassen die mit HTMLPurifier beginnen automatisch vom Autoloader der HTMLPurifier-Bibliothek geladen.
<?php
/**
* Autoloader for HTMLPurifier
*
* @author Benjamin Steininger <robo47@robo47.net>
*/
class App_Loader_Autoloader_HTMLPurifier implements Zend_Loader_Autoloader_Interface
{
/**
* If the needed class/file is already loaded
*
* @var bool
*/
private $_loaded = false;
/**
* Autoload-Method
*
* @param string $class name of the class
*/
public function autoload($class)
{
if(!$this->_loaded) {
require_once 'HTMLPurifier/Bootstrap.php';
$this->_loaded = true;
}
HTMLPurifier_Bootstrap::autoload($class);
}
}
Trackbacks (0)
Trackbackurl: http://www.robo47.net/trackback/snippet/31Es sind keine Trackbacks vorhanden.
You liked it ? Link it on your homepage or blog:



Benjamin Steininger ist Webentwickler auf der Suche nach einem neuen Job und
photographiert sehr gerne. Er beschäftigt sich viel mit dem Internet, PHP, Symfony, Testing und hat einen
Kommentare (2)
Die Autoloader-Klasse ist wirklich hilfreich bei der Verwendung von HTMLPurifier mit dem Zend Framework.
Bei der Registrierung des Autoloaders muss als zweiter Parameter allerdings "HTMLPurifier" (anstatt "htmlpurifier") angegeben werden, damit der Autoloader auch wirklich für die HTMLPurifier-Klassen angestoßen wird.
Also ich hab hier noch ein ZF 10.2 laufen und da scheint ein
htmlpurifier scheinbar auszureichen, ich weis nicht ob der Loader da vielleicht mit lowercase auf klassennamen/prefixes den namespace noch vergleicht, aber gut zu wissen wenn sich da etwas geändert hat.
Danke.robo47
Die Kommentare zu diesem Beitrag sind gesperrt.