argh! du sollst objektkomposition verwenden und nicht methoden nachladen!
[OOP] neue Methode in Class "includieren"?
Einklappen
X
-
Gibt auch ein Modelkit oder so ... such mal nach aggregate im Manual, ist aber nicht zu empfehlen~
Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!
bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
Wie man Fragen richtig stellt
Kommentar
-
PHP-Code:
...
function __autoload($name) {
require_once(str_replace('_', '/', $name) . ".php");
}
...
/**
* deklaration, welche methoden ein modul zur
* verfuegung stellen muss.
*/
interface my_Module {
public function run();
}
/**
* beispiel-implementierung für ein modul.
*/
class my_Module_A implements my_Module {
public function run() {
return __METHOD__;
}
}
/**
* beispiel-implementierung.
*/
class my_Module_B implements my_Module {
public function run() {
return __METHOD__;
}
}
/**
* Basis-klasse.
*/
class Main {
/**
* modul laden. beachten, dass __autoload() aufgerufen wird,
*/
private function loadModule() {
switch (bla) { // wo auch immer entschieden wird, welches modul.
case 'A':
return new my_Module_A();
case 'B':
return new my_Module_B();
}
}
/**
* richtiges modul wird geladen und dann laufen gelassen.
*/
public function run() {
$this -> loadModule() -> run();
}
}
// usage
$m = new Main();
$m -> run();
grüße
axoZuletzt geändert von axo; 19.02.2007, 23:36.
Kommentar
-
Original geschrieben von echelon
(mein xajax-cms wird kommen)
Das glaub ich erst wenn ich es sehe, und wenn ich es sehe
wird es wohl eher nicht dein xajax-cms sein sondern
wohl axos,unsets,wahsagas,shurakais,3dmax' ,slavas (und wie die gurus alle heissen) xajax-cms.
</evil>
greets(((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")
Kommentar
Kommentar