Newsgroup: it.comp.www.php
Titolo: Aggiungere un metodo ad una classe runtime

E' possibile?
Ho visto degli esempi con la funzione create_function, ma non facevano
proprio questa cosa.
Grazie
Ciao
--
Staff 
elive.it
www.elive.it
Gli eventi live a portata di click.
Gratis concerti di musica live, feste,
teatro, cabaret, etc... della tua provincia

 E' possibile?
Quale e' la tua reale necessita'?
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

 Quale e' la tua reale necessita'?
Comunque:
http://www.php.net/ref.classkit
http://www.php.net/overload


 Quale e' la tua reale necessita'?
Vorrei fare in modo che vengano aggiunti ad una classe dei metodi in fase di
caricamento di script presenti in una directory. Una sorta di plugin...
La classe ha un nome ben definito, ma i metodi no...
Non conosco classkit e proverò ad indagare...
avevo visto qualcuno che era riuscito a creare funzioni con un determinato
nome giocando con sprint, eval, etc..., ma non faceva al caso mio.


 plugin...  La classe ha un nome ben definito, ma i metodi no...
Perche' non utilizzi l'ereditarieta'?


 Perche' non utilizzi l'ereditarieta'?
Perchè purtroppo nella fase di caricamento dei plugin ho già l'istanza della
classe alla quale vorrei aggiungere i metodi.
Cioè una cosa del tipo:
class Pippo {
    ...
    ...
    function start() {
        ... carica i plugin
        ... ed uno di questi plugin aggiunge il metodo "pluto"
    }
}
$pippo = new Pippo();
$pippo->start();
$pippo->pluto();
ho guardato il metodo overload e forse con un giro dell'oca riesco a fare
quello che mi serve.

 l'istanza della classe alla quale vorrei aggiungere i metodi.
IMHO dovresti rivedere come vuoi implementare la cosa, esistono vari
pattern OO che puoi utilizzare per la gestione dei plugin.


 pattern OO che puoi utilizzare per la gestione dei plugin.
Mi sai indirizzare verso qualche sito che ne spieghi qualcuno...
... io per ora pensavo di procedere in un modo molto semplice, ma un po'
cafonaro:
includo i file dei plugin, questi contengono semplici funzioni
la classe alla quale vanno aggiunti č overloadable e quando scatta una
chiamata a __call chiamo in realtą la funzione che ho incluso
E' un po' una cafonata perchč quel metodo non fa parte effettivamente
dell'oggetto e quindi puo' essere chiamato anche senza avere una istanza...


 chiamata a __call chiamo in realt` la funzione che ho incluso
Che tipo di plugin vuoi creare? Se sai quale metodo chiamare allora la
struttura dei plugin e' pressoche' inutile.
Norlmente i plugin sono classe che ereditano da una classe base con
metodi ben definiti oppure che sottoscrivono una determiata interfaccia
o piu' di una interfaccia (es. una interfaccia per ogni tipo di
servizio che tale plugin deve implementare).
Se sai a priori il nome del metodo da chiamare allora non avrai alcun
disaccoppiamento tra classe client e plugin, a quel punto tanto vale
creare una classe qualsiasi (o gruppo di funzioni) e basta.
http://www.phpclasses.org/browse/package/1693.html


 
http://www.phpclasses.org/browse/package/1693.html
Interessante...