Programmering af modulsystem

Tags:    php oop

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 :)



5 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Gad du selv læse den smøre igennem?

Der findes altså en knap på dit tastatur kaldet "enter", den sidder i højre side og laver nye linjer!

;-)



Som jeg ser det, taler du vel bare om en MVC controller? Hvor hver enkelt "modul" skaffer sig adgang til en main controller som består af view samt et datalag.. ?



Ja. Det er jo i bund og grund en MVC-controller. Men om det så er det rigtige i forhold til hvad jeg laver det er jo det jeg prøver at finde ud af :)



Hvad laver du da?



Jeg er igang med at afprøve min viden indenfor programmering i PHP og vil se hvor langt jeg kan komme vha. learning-by-doing. Det jeg er igang med at bygge er et CMS-system der skal ende ud i at have mange af de samme træk som Drupal i form af at være meget fleksibelt og kunne udbygges til rigtig mange forskellige ting. Dog vil jeg gøre en ting anderledes. Jeg vil kigge på hvordan administrationspanelet er opbygget i systemer såsom Wordpress for at gøre noget ved det til tider noget besværlige måde at administrere sit Drupal-site på.
Jeg ved godt at det er et meget ambitiøst projekt og det har indtil nu taget mig rigtig lang tid at få det til at virke som jeg har i dag. Men jeg mener at jeg før eller senere kan komme op i nærheden af noget der minder i Drupal, også selvom jeg kun er en udvikler om et system der skal kunne sammenlignes med et system med mange år og versioner på bagen og med flere tusinde udviklere i baggrunden.



t