Samuel
Erfahrenes Mitglied
Guten Abend,
ich würde gerne index-Datei erstellen die mir aus ausgehend von der Adressleiste
eine gewisse Klasse einbindent und des weiteren gleich eine Methode aufruft und
dessen Parameter mitgibt.
Hier mein Ansatz:
Dies sollte nach aufruf von: index.php?classname=Klasse&Methode&Parameter1=foo&Parameter2=bar
folgendes bewerkstelligen:
Dies funktioniert auch einwandfrei. Nun würde ich das aber gerne so umschreiben das
es mir die Parameter nicht in einem Array sondern einzeln im jeweiligem Format an die Methode übergibt. Wie zB
Das ganze würd sich ja mit eval(); umgehen lassen, aber wie wir alle wissen eval() => evil
Vielen Dank im voraus für die eure Mithilfe.
Schöne Grüße
Samuel Weber
ich würde gerne index-Datei erstellen die mir aus ausgehend von der Adressleiste
eine gewisse Klasse einbindent und des weiteren gleich eine Methode aufruft und
dessen Parameter mitgibt.
Hier mein Ansatz:
PHP:
<?php
function __autoload($classname)
{
if(is_file('libs/' . $classname . '.class.php'))
require 'libs/' . $classname . '.class.php';
else if(is_file('libs/' . $classname . '.inc'))
require 'libs/' . $classname . '.inc';
else
require 'templates/error404.tpl';
}
$arrayIndex = array();
$acronym = array();
$parts = explode('&', $_SERVER['QUERY_STRING']);
foreach($parts as $value)
{
list($arrayIndex, $acronym) = explode('=', $value);
$parameters[$arrayIndex] = $acronym;
}
$obj = new $parameters['classname'];
$obj->$parameters['method'](array_slice($parameters, 2));
?>
Dies sollte nach aufruf von: index.php?classname=Klasse&Methode&Parameter1=foo&Parameter2=bar
folgendes bewerkstelligen:
PHP:
$obj = new Klasse;
$obj->Methode(array('Parameter1'=>'foo', 'Parameter2'=>'bar'));
Dies funktioniert auch einwandfrei. Nun würde ich das aber gerne so umschreiben das
es mir die Parameter nicht in einem Array sondern einzeln im jeweiligem Format an die Methode übergibt. Wie zB
PHP:
$obj->Methode('foo', 'bar');
Das ganze würd sich ja mit eval(); umgehen lassen, aber wie wir alle wissen eval() => evil
Vielen Dank im voraus für die eure Mithilfe.
Schöne Grüße
Samuel Weber