php + modulprogrammierung
Luki 22.04.2004 - 15:44 564 4
Luki
UNDER CONSTRUCTION
|
Möchte nun Php-code mit Modulsupport schreiben habs schon ein bisschen versucht, nur dynamisch will es irgendwie nicht funktionieren kurz zum aufbau das fertige modul soll in den ordner /module/modul_name kopiert werden, und dann erkannt und eingebunden werden. der/die ordner beinhaltet eine class.php datei, die zumindest die basic parameter in form einer klasse enthält mein problem ist es nun ein objekt zu erstellen und dann darauf zuzugreifen.. $sel_dir = "./modules";
$handle=opendir($sel_dir);
while ($file = readdir ($handle))
{
if ($file != "." && $file != "..")
{
echo "if $file blu <br>";
if(is_dir($sel_dir."/".$file))
{
echo "Dir: $file";
$class_name[$i] = $file;
$i++;
}//if-dir
}//if
}//while
closedir($handle);
$j = 0;
$class_single = $class_name[0];
$include_dir = "$sel_dir/$class_single/class.php";
echo $include_dir;
include($include_dir);
$modul[0] = "";
$php_code = "\$modul[0] = new ".$class_single.";";
eval($php_code);
$output = $modul[0]->getDesc();
echo "Beschreibung: ".$output;
der output generiert keinen fehlercode, nur wirft er auch die beschreibung nicht aus, die im class.php file eingegeben wurde danke für jede Hilfe bzw Problemlösung!
Bearbeitet von Luki am 22.04.2004, 16:24
|
Rektal
Here to stay
|
1) error_reporting(E_ALL); 2) var_dump($class_name, $class_single); 3) du musst nicht eval() unbedingt nehmen, sondern kannst auch $object = new $classname; machen. 4) in PEAR findest du zu Hauf Beispiele, da wett' ich meine Unterhose schon was gefunden -> PEAR/Command.php: $obj = &new $class($ui, $config); 5) ich wuerd' eher include_once bzw. require_once nehmen, damit du sicher gehst dass du das file nur einmal jemals einbindest. oefters brauchst dus ja nicht und wuerdest eineen class redeclaration fehler bekommen. 6) Nur am Rande: PHP5 hat ein nettes autoload feature. Wenn du eine Klasse versuchst zu instanzieren, die nicht existiert, versuch er __autoload() { oder aehnlich, vergessen } aufzurufen, du u.U. die richige Klasse sucht und included
|
Luki
UNDER CONSTRUCTION
|
das ist nur der anfang, wird dann noch weiter ausgebaut, also dann werden module installiert werden können usw... - ich zeigs das resultat dann einfach mal her eval, wird genommen, da ich ja nicht weiß welche klassen dann eingebunden werden bis php5 "in prof. verwendung" ist, wirds noch ein zeital dauern, also bleib ich daweil noch beim 4er falls ich was falsch verstanden habe, bitte ich dies zu berichtigen, wenn möglich mit code als beispiel
|
Rektal
Here to stay
|
eval, wird genommen, da ich ja nicht weiß welche klassen dann eingebunden werden Das weisst du bei dem Konstrukt auch nicht: $object = new $class;
$class kann alles sein, ist halt ne Variable Mein Tipp eben: error_reporting aufdrehen und var_dump() was geht
|
Luki
UNDER CONSTRUCTION
|
- danke für die hilfe, hab nur ein this in der class vergessen...
|