[php] hoe dynamic function calls

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Suepahfly
  • Registratie: Juni 2001
  • Laatst online: 17-09 17:05
Ik ben bezig met een modulair opgeboud CMS.
Hierin include ik verschillende bestanden (modules)

Om modules makkelijk uitbreidbaar te maken heeft iedere module een eigen directory (a la PHP-Nuke)
Via bepaalde vars in de URL wordt het juiste bestand ge-include

Iedere module heeft 2 standaard functies.
mcpannel(); en main(); Deze staan in /$module/index.php
Dit zijn functies die altijd wordt uit gevoerd door de zgn. `moduleLoader`

Als de var $file wordt mee gegeven wordt een extra bestand, met extra functies, ge-include.
Via de var $op moeten deze functies worden uitgevoerd.
Dus als ik http://someDomain.tld/mod...=SomeFile&op=SomeFunction aanroep, moet de functie ` SomeFunction` uit het bestand ` SomeFile` worden uitgevoerd.

bv.
PHP:
1
2
3
4
5
6
7
8
9
10
11
include("modules/".$module"/index.php"); 
mcpannel(); 
main(); 

if(!empty($_GET['file'])) 
{ 
   include("modules/".$module"/".$file.".php"); 
   // Nu worden extra functies beschikbaar 
   if(function_exist($op)) 
     // functie uitvoeren 
}


De funtie naam staat dus in de var $op die met de URL wordt mee gegeven.
Dus eigenlijk wil ik iets als

PHP:
1
2
// Psuedo functie 
function_execute($_GET['op']);


Omdat deze functies allen constructors zijn (genereren alleen output) vragen ze geen extra argumenten.

Bovenstaande werkt natuurlijk niet, ik wil weten hoe ik dit het beste kan aanpakken.

Acties:
  • 0 Henk 'm!

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 17-09 08:05
je kan gewoon iets doen als:

$op();

Acties:
  • 0 Henk 'm!

  • Suepahfly
  • Registratie: Juni 2001
  • Laatst online: 17-09 17:05
Ja ik ziet het. Probleem opgelost dus. :)

Acties:
  • 0 Henk 'm!

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07 12:07
call_user_func(_array).