ExtractFunctions() has become GetModuleInterface() and now returns the name of the module's class. I discovered that PHP allows you to instantiate that class like so
$class_name = GetModuleInterface();$instance = new $class_name;
I like this solution a lot better because now I dont need that ugly Function field in my database like I had before, I dont have call_user_function() or an ugly array of functions in my code like I did when I returned an array of functions, and generally it seems like the code is simpler.
Before I decided to try this I tried to take jumpjumpjump up on his suggestion to look at MediaWiki's namespaces but I guess I suck at PHP or I dont get MediaWiki's code because I didnt understand what was going on. I looked in a few files but I didnt find one that included Namespace.php nor did I understand the significance of Namespace.php. [oh]
e107 uses arrays with everything. This way, if you want to make a module, you just add what you want to the end of the array you have to deal with. It also uses a database table to determine what modules are installed along with all its settings. Ummmm, do you want a copy of rWeb? It was a horrible website template system I made a while ago and have just recently decided not to maintain it anymore. You want a copy of it? Here's an example page along with the stylesheet changer. I'm going to delete it soon anyway due to its horribleness [smile].