2010-03-31 10 views
1

Je crée mon propre script en utilisant le framework CodeIgniter MVC. Maintenant, je veux que les utilisateurs modifient facilement les fonctionnalités du site et ajoutent les leurs sans modifier le code que j'ai déjà écrit.Comment faire un script PHP qui est pluginable?

Comment rendre mon site pluginable?

EDIT: Les utilisateurs seraient les administrateurs du site. Pas l'utilisateur final. Fondamentalement, tout comme drupal ou joomla. Vous voulez que l'administrateur puisse créer/ajouter des plugins pour étendre les fonctionnalités du site.

+0

Lorsque vous dites que vous voulez que votre site puisse utiliser des plugins, quel genre de choses envisagez-vous de faire avec ces plugins? Si je voulais écrire un plugin pour votre site qui créerait une nouvelle page permettant à quiconque d'afficher/modifier les valeurs dans n'importe quelle table de la base de données du site, cela serait-il un plugin valide? Si non, pourquoi pas; quelles sont tes limites? –

+0

Aucune limite. Le plugin serait capable de récupérer/supprimer toutes les données de la base de données. –

Répondre

4

Il peut y avoir une meilleure façon qui est spécifique à CodeIgniter, mais ce que je ferais:

D'abord, créer des fonctions pour divers « points de crochet » dans votre code. Dites, une fonction nommée PreArticle que vous appelez dans votre code, avant qu'un article ne s'affiche.

Permettre à l'utilisateur d'écrire du code comme ceci:

addHook_PreArticle('funcToCall'); 

    function funcToCall(&$articleText) { 
     $articleText = str_replace('Hello', 'World', $articleText); 
    } 

addHook_PreArticle est une fonction que vous avez défini, qui ajouterait la chaîne passée à une liste interne. Ensuite, lorsque la fonction PreArticle est appelée, chacune de ces fonctions est exécutée, en passant les paramètres appropriés que vous définissez.

0

De nombreux années CMS comme Joomla et blogs comme Wordpress utilisent des noms de fonctions variables:

$function="phpinfo"; 
$function(); 

Vous pouvez charger ce dans un tableau pour créer une liste de fonctions qui peuvent être surchargées.

Questions connexes