Hej
Jeg har nu været stor fan af Drupal i en periode og har også haft kig på flere andre systemer og på den måde hvorpå de indbygger funktionalitet til at tilføje tredjepartsmoduler/udvidelser til et system.
Jeg har haft lidt svært ved at finde ud af hvordan jeg skal bygge mit eget modulsystem, men jeg har forsøgt at gøre mig lidt tanker om det.
Jeg forestiller mig at jeg vil bygge en række funktioner, måske statiske funktioner i en klasse, som bruges til adminstrere og indlæse moduler. Dertil bygger jeg en baseclass kaldet "Modul". I denne klasse vil der være funktioner og variabler der er fælles for alle moduler. Når et modul bygges til system, uanset om det er fra en ekstern udvikler eller af mig selv, vil modulets primære fil, kaldet <modulnavn>.module.php, indeholde en klasse der udvider Modul-klassen med de funktioner og variabler der er specifikke til dette modul.
I forhold til at administrere og indlæse moduler forestiller jeg mig at jeg vil bruge et par ideer fra Drupal hvor man har en info-fil der indeholder noget information om det specifikke modul. Moduler indlæses i systemet ved at de under installation vil blive oprettet i en tabel i min database. Denne tabel vil indeholde et ID-felt, maskinnavnet på modulet og om modulet er aktiveret. Når jeg besøger en side vil alle moduler blive indlæst i et array som vil blive sammenlignet med de data der findes i min modultabel. Hvis et modul findes i tabellen og det er sat som aktivt vil der blive oprettet en instans af klassen for det pågældende modul.
Men hvad mener I om denne måde at håndtere moduler på? Er der en bedre måde at gøre det på?
Hav en god søndag