Gå til innhold

modul/pluginbasert applikasjon, hvordan?


Anbefalte innlegg

Noen som har en idé til hvordan man kan lage en applikasjon som laster pluginer og/eller moduler?

f.eks en person vil lage en ny plugin, men det skal ikke være nødvendig å røre ved frameworket. I /plugins/ lages det en ny mappe, med filene til pluginen, hver av mappene inneholder instruksjoner for en gitt plugin.

 

Håper noen har en god idé eller link til lesing/diskusjon om emnet

Lenke til kommentar
Videoannonse
Annonse

Du må jo ha noe som søker opp mappene/pluginsene som finnes. Pluginsene kan eventuelt ha egen konfigurasjonsfil som forteller hvor/eller hva pluginsen skal brukes.

 

Kommer jo ann på hva du skal bruke pluginsen til, pluginser burde få en egen tabell i databasen, der pluginsen gjennom en slags API kan lagre og hente ting.

 

Mesteparten kan jo gjøres med include(), så dette burde ikke bli så vanskelig. Du må bare ikke prøve å ta den vanskeligste veien, ting er ikke så vanskelige.

 

Hvis du har et flerbruker-system kan det blir "litt" vanskeligere, men det er bare noen få ekstra ting å tenke på.

Endret av -XaHc-
Lenke til kommentar

Skal du lage et "super modulært" system må du bruke "TODO tables". Hvis du søker på forum har jeg skrevet one om det.

 

Hvis du bare skal ha et enkelt modul system så kan du bruke denne metoden:

 

index.php

if(!$_GET['mod'])
 die("Du må velge en modul");

$mod = $_GET['mod'];
if(!file_exists('mods/'.$mod.'.php'))
 die("Modul finnes ikke");

/*
  Lag noen klasser, variabler eller fungsjoner her
*/
startModuleSystem();
require 'mods/'.$mod.'.php';
endModuleSystem();

mods/test.php

echo 'Dette er en test på et modul system';
api_kall();

Lenke til kommentar

function load_menu($side, $user){
$sql "SELECT id FROM users WHERE brukernavn='$user'";
$ans = mysql_query($sql);
$arr = mysql_fetch_assoc($ans);
$userid = arr['id'];

$sql = "SELECT * FROM menu WHERE userid='$userid' AND side='$side'";
$ans = mysql_query($sql);

while($arr = mysql_fetch_assoc($ans)){
$plugin = $arr['pluginname'];

include('plugins/custom/'.$plugin.'/plugin.php');

}

 

Dette er koden jeg har for å vise plugins (menylinje). 1-2 to ting er litt rotete, og kan sikkert gjøre den enda kortere.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...