我正在使用CodeIgniter MVC框架创建自己的脚本。现在,我希望用户能够轻松修改网站功能并添加自己的功能,而无需修改我已编写的代码。
如何让我的网站可插入?
编辑:用户将是网站管理员。不是最终用户。基本上就像drupal或joomla一样。希望管理员能够创建/添加插件以扩展站点功能。
答案 0 :(得分:4)
可能有更好的方式特定于CodeIgniter,但这就是我要做的:
首先,在代码中为各种“钩点”创建函数。比如,在显示文章之前,在代码中调用的名为PreArticle
的函数。
允许用户编写如下代码:
addHook_PreArticle('funcToCall');
function funcToCall( &$articleText ) {
$articleText = str_replace('Hello', 'World', $articleText);
}
addHook_PreArticle
是您定义的函数,它会将传递的字符串添加到某个内部列表中。然后,当调用PreArticle
函数时,执行每个函数,传入您定义的任何适当参数。
答案 1 :(得分:0)
许多CMS像Joomla和像Wordpress这样的博客使用变量函数名称:
$function="phpinfo";
$function();
您可以将其加载到数组中以创建可以覆盖的函数列表。
答案 2 :(得分:0)
这是使用观察者模式的完美案例。 http://devzone.zend.com/article/5