ugrás a tartalomhoz

Osztályhívás dinamikusan

deejayy · 2008. Feb. 6. (Sze), 20.56
Egy form adatokat küld egy php-nek. A formot egy osztály generálja le, ami ellátja a POST adatok feldolgozását is igény esetén.

Akarok csinálni egy handler tömböt, ami megfelelően megformázott POST paraméterek alapján meghívja a megfelelő osztály handler függvényét.

Azaz pl.

<input type='hidden' name='handler' value='loginhandler'>
Akkor én annak megfelelően, hogy van-e regisztrálva az osztályok között loginhandler, meg szeretném hívni az ő handler függvényét.

Tehát valami olyat csinálnék, hogy

$_POST['handler']::handleparams($_POST);
De ez ugye hibát ír.

Hogyan közelíthetném meg a problémát máshogy?

(tegyük fel, hogy 200 objektum kezelését kellene beregisztrálnom a handler-láncba, és if-then-else nem túl barátságos)
 
1

Igy

zmb · 2008. Feb. 6. (Sze), 21.11
Ha peldanyt akarsz letrehozni:
$class = $_POST["handler"];
$object = new $class();
$object->handleparams($_POST);


Ha ragaszkodsz a statikus fuggvenyhez:
$class = $_POST["handler"];
call_user_func(array($class, "handleparams"), $_POST);


Ugye az csak peldat szemleltet, es nagyon-nagyon alaposan ellenorzod ennek a post valtozonak az erteket?
2

Igen

deejayy · 2008. Feb. 6. (Sze), 21.23
Helo,

igen, csak szemléltettem, előtte át fog menni egy szűrőn.

Utóbbi olyan, mintha :: -val hivnám meg a függvényt? (tehát nem példányosítom az osztályt)
Én így értelmezem a 'statikust'.
3

Jah

zmb · 2008. Feb. 7. (Cs), 09.05
Igen.