'Zend/Markup/Parser/', )); } return self::$_parserLoader; } /** * Get the renderer loader * * @return Zend_Loader_PluginLoader */ public static function getRendererLoader() { if (!(self::$_rendererLoader instanceof Zend_Loader_PluginLoader)) { self::$_rendererLoader = new Zend_Loader_PluginLoader(array( 'Zend_Markup_Renderer' => 'Zend/Markup/Renderer/', )); } return self::$_rendererLoader; } /** * Add a parser path * * @param string $prefix * @param string $path * @return Zend_Loader_PluginLoader */ public static function addParserPath($prefix, $path) { return self::getParserLoader()->addPrefixPath($prefix, $path); } /** * Add a renderer path * * @param string $prefix * @param string $path * @return Zend_Loader_PluginLoader */ public static function addRendererPath($prefix, $path) { return self::getRendererLoader()->addPrefixPath($prefix, $path); } /** * Factory pattern * * @param string $parser * @param string $renderer * @param array $options * @return Zend_Markup_Renderer_RendererAbstract */ public static function factory($parser, $renderer = 'Html', array $options = array()) { $parserClass = self::getParserLoader()->load($parser); $rendererClass = self::getRendererLoader()->load($renderer); $parser = new $parserClass(); $options['parser'] = $parser; $renderer = new $rendererClass($options); return $renderer; } }