Witam, problem jest krótki, lecz uniemożliwiający spokojny sen w nocy

. Otóż piszę średniej wielkości cms'a na potrzeby tworzonych przez siebie stron (po co pisać to samo wiele razy). Całe jego działanie chcę oprzeć na modułach, które byłyby dołączane wybiórczo, w zależności od potrzeb projektu. Wypociłem coś w stylu:
<?php
// config.inc.php:
// lista dozwolonych modułów
$umodules = array('md_content', 'md_news', 'md_kolejnymodul' /*... */);
// index.php:
// pobieranie nazwy modułu do działania
// GetPageArgument() to moja funkcja do wybierania z _get[]ów i _post[]ów
$mode = str_replace(' ', '', GetPageArgument
('mode', 'md_content'));
// ...
// kod wywołujący dany moduł
$umodules_string = implode(' ', $umodules); if (stristr($umodules_string, $mode)) { // include'uje moduł
include_once('modules/'.$mode.'/module_code.php');
if (is_callable('main_'.$mode)) {
$mdr_body = '';
$mdr_title = '';
// wywołuje funkcję main_md_nazwamodułu
// i przekazuje jej referencje do zmiennych, gdzie ma być zwrócona treść
if (call_user_func('main_'.$mode, &$mdr_body, &$mdr_title)) {
$body .= $mdr_body;
$page_title .= ' - '.$mdr_title;
} else {
$body .= 'Nie mogę wyświetlić żądanej treści';
}
} else {
}
} else {
$body .= "Nie mogę znalezc okreslonego modulu";
}
// przykładowy plik, modules/md_content/module_code.php
function main_md_content(&$body, &$title) {
$result = '';
$cmd = GetPageArgument('cmd', '');
$content_id = GetPageArgument('content_id', 0);
return get_content($content_id, $body, $title);
}
?>
W katalogu /modules/md_nazwamodulu/ jest jeszcze zawsze plik module_admin.php do administracji oraz module_info.php z szybkimi do wyciągnięcia informacjami o module. Poza tym jest też oddzielna tablica $amodules[], która zawiera tablicę modułów wywoływanych zawsze, bez polecenia. Jakoś to wszystko działa... jestem tylko pewny jednej rzeczy - ten kod nie jest ani trochę bezpieczny. I celem tego tematu jest to, żebyście wskazali mi wszystkie możliwe furtki/błędy, które zostawiłem pisząc to. Jeśli gdzieś popełniłem coś naprawdę głupiego - opieprzcie mnie solidnie

. No i miłe też będą komentarze na temat wydajności tego wynalazku... bo jej też nie jestem pewien.