Mailinglisten-Archive |
Hi Andreas, iss net so ganz was ich mir gedacht habe. Vieleicht hab ich mich auch falsch asgedrückt. hier ein schnelles Beispiel wie ich das gewünschte "simulieren" kann...aber nicht will. File 1: (foo.php) <?php class c_foo { var $obj; var $arr_settings; var $arr_methods; var $output; function c_foo(&$obj) { $this->obj = &$obj; $this->arr_settings['name'] = 'foo'; } function m_main() { return $this->output = '<p>'.$this->m_method( 'print' , 'bar' ).'</p>'; } function m_method($method, $param) { require_once($this->arr_settings['name'].'.'.$method.'.php'); $class = 'c_'.$this->arr_settings['name'].'_'.$method; $method = 'm_'.$method; $this->arr_methods[$class] = & new $class ( & $this->obj ); return $this->arr_methods[$class]->$method( & $param ); } } $obj = 1; $foo = new c_foo(&$obj); print $foo->m_main(); ?> File 2 (foo.print.php) <?php class c_foo_print { var $obj; function c_foo_print(&$obj) { $this->obj = &$obj; } function m_print() { return 'bar'; } } ?> Mir gehts eigendlich darum eine Klasse "beliebig" zu erweitern ohne die Datei anzufassen. Was ja mit den Design Pattern ja geht. Aber ich will was anderes.Ich will alle Methoden in einzelnen Dateien haben. Somit müsste jede Klasse nur einen bestimmten Grundbestand an Methoden haben und könnte beliebig ausgebaut werden. Was ja der Dateigrösse zuspricht und ich muss auserdem nicht bei jeder Instanz der Klasse jeden Sch.... mitladen der irgendwann mal gebraucht wird. Nur wenn die Methode "gebraucht" wird soll sie importiert werden und ihren Dienst tun. In dem Beispiel hab ich das über ein Unterobjekt erreicht. Ich will aber diese Funktionalität ohne Extraklasse erreichen. Einfach nur die Methode "m_print" in die Klasse "c_foo" reindreschen ohne irgendwelche Unterklassen oder Vererbungen. Gruß Eric
php::bar PHP Wiki - Listenarchive