que tal.
Si es que entiendo bien tu cuestinamiento, lo que necesitas es crear una clase totalmente nueva que manipule tantas extensiones como desees. Es decir, esta nueva clase se especializa en manipular extensiones de la clase FPDF. Podriamos llamarla 'FpdfExtensionHandler' y no hereda de ninguna otra clase, sino instancia objetos que heredan de Fpdf, de tal forma que podrías tener algo asi:
Código PHP:
final class FpdfExtensionsHandler
{
const HANDLERS_DIRECTORY = 'path/al/directorio/de/las/clases_extensiones/';
private $extensions = array();
public $extension = null;
public function __construct()
{
return true;
}
/**
* @return Bool
* @param String $ExtensionName
*/
public function LoadExtension($ExtensionName)
{
$extension_path = self::HANDLERS_DIRECTORY.$ExtensionName
if ( file_exists($extension_path) && !class_exists($ExtensionName) )
{
include_once($extension_path);
$this->extensions[$ExtensionName] = new $ExtensionName();
}
return true;
}
/**
* @return Bool
* @param String $ExtensionName
*/
public function SetExtension($ExtensionName)
{
if ( array_key_exists($ExtensionName,$this->extensions) )
{
$this->extension =& $this->extensions[$ExtensionName];
}
}
}
de esta forma tu puedes cargar las extensiones que desees dentro del mismo objeto, simplemente usas el método LoadExtension para cargarlo, y luego SetExtension para usar la extensión que desees, la variable $this->extension siempre apunta a la extensión seleccionada.
Espero haber entendido correctamente tu cuestionamiento. Este proceso te permite seguir cargando tantas extensiones como desees. Obviamente hacen falta métodos para comprobar la existencia de las clases, etc etc.
saludos