Zend Framework - HTMLPurifier Autoloader

Flattr this
Tweet this: Zend Framework - HTMLPurifier Autoloader
Dent this: 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/31

Es sind keine Trackbacks vorhanden.


Kommentare (2)

  • Kommentar von Sebastian Fuchs am 14.10.2010 19:43:21
    Gravatar Sebastian Fuchs

    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.


  • Kommentar von robo47 am 17.10.2010 08:25:07
    Gravatar robo47

    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.

You liked it ? Link it on your homepage or blog: