[QUOTE]Originariamente inviato da klode
Salve,
mi sto impazzendo!
Sto utilizzando CodeIgniter come Framework.
Ho necessità di utilizzare una mia Libreria per esternalizzare tutta la parte di rendering delle pagine. Utilizzo il pattern MVC di CodeIgniter, ma voglio che le View siano solo una preparazione dei dati che andranno poi alla libreria Template (che sto creando) per il rendering delle pagine.
[quote]
E già qui mi chiedo, 1. perché code igniter, 1. perché vuoi riscriverne il template engine.
Ma a monte la cattiveria procediamo per gradi.

Ho una classe che chiameremo Template. Poi ho una Classe che chiameremo "Fabulosus" (un Template HTML trasformato in Classe). Ora questa classe estende la Classe Template, ovvero ne acquisisce i metodi ed i parametri.

Fin qui tutto ok!

Il mio problema è il seguente:
codice:
Class Template
{
    public function foo() {}
}

Class Fabulosus extends Template
{
    public function bar() {}
}
Ora io ho necessità di fare questo:

codice:
$a = new Template();
$a->bar();








Come posso fare? Vi spiego perchè: io devo NECESSARIAMENTE istanziare Template, ma non so se dovrò poi utilizzare la Classe "Fabulosus" o "Ingenious" o "DarkBelt", o qualsiasi altro template HTML... Da Template, dovrò settare un template, e in base a ciò che chiamo dovrò integrare in Template i metodi ed i parametri di queste classi.

In altre parole, dovrei modellare dinamicamente la classe Template.

Che soluzione proponete??? C'è qualcosa che non so???
Si, ci sono molte cose che non sai, in primis come funziona l'ereditarietà. Come suggerisce virus hai diversi metodi tutti riassumibili nei seguenti pattern: decorator, factory, builder.

Studiali e decidi quale fa al caso tuo.