Witam.
Hm. Tak sobie myślę jak to rozwiązać. I takie pomysły mi przychodzą. Nie wiem czy dobrze myślę, oczekuję waszych sugestii.
Każdy moduł byłby w modules/nazwamodułu/
w takim katalogu byłoby coś like
init.php - skrypt inicjujący moduł, ustawiający jego nazwy, wersję, zależności, jakich klas ten moduł dostarcza, jakich wymaga. classes.php - klasy tego modułu jakie on dostarcza actions/ - katalog z 'akcjami', np. add, delete, edit, etc.
Klasa LMS wiązałaby inne klasy i funkcje ogólne LMS'a. I tak np. nie byłoby $LMS->AddUser() tylko $LMS->User->Add(). Klasa User byłaby dostarczana przez jakiś określony moduł. Moduł ten (do zarządzania użytkownikami) wymagałby także klas modułu finansowego (jak np. Finances::GetUserBalance) a inicjacją wymaganych klas zajmowałaby się sama klasa LMS. Ojej. Ale gmatwam. Generalnie cel byłby taki, żeby każdy moduł potrafił określić czego wymaga oraz co on sam może zapewnić. Potrafiłby także sprawdzić czy ma dostępne jakieś moduły i np. w ramach tego sam się odpowiednio zachować. Co za tym idzie, można by było odpalić LMS'a z samym modułem do zarządzania komputerami i urządzeniami sieciowymi i mamy ładną i fajną aplikację do sieci korporacyjnej.
Ha, brzmi fajnie, co nie? :) Ale chyba to nie przejdzie narazie. Za dużo roboty. Tak naprawdę trzeba by było napisać LMS'a od nowa. Ech :/