创建插件系统的最佳方法?

时间:2015-01-25 17:49:17

标签: php plugins hook add-on

我正在尝试为我的网站创建一个插件系统,以便在我想添加/调整某些内容时不必修改任何代码。但我不确定什么是最好的方法。

例如,我正在尝试创建一个插件能够操作帖子的系统。例如,帖子:

  

克里斯托弗·诺兰(Christopher Nolan)的Interstellar在票房收入总计6.633亿美元。更多http://en.wikipedia.org/wiki/Interstellar_%28film%29

我正在尝试创建一个可将所有网址更改为可点击链接的插件。该插件将是一个php函数,如下所示:

<?php
function linkify($content) {
    return preg_replace('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '<a href="$1" target="_blank">$1</a>', $content);
}

创建插件后,我这样做:

  

在插件文件夹中包含“Linkify.plugin.php”文件所在的所有文件。还有另一个文件“Linkify.plugin.init.php”,其中包含有关插件的信息以及插件的工作位置on(对于这个例子,它将在帖子内部工作):

<?php
$name = 'Linkify Plugin';
$area_to_work_in = 'posts';
$function_name = 'linkify';
....

然后在用于输出帖子内容的函数内部,我这样做:(PHP代码)

foreach($plugins_for_post as $plugin) {
    $story_content = $plugin['function_name']($story_content);
    // $plugin['function_name'] is the name of the function, which is "linkify"
    // $story_content is the argument here
}

这将输出内容,其中URL现在是一个链接。

这是一种不错而有效的方法吗?它会引起任何问题吗?如果您有任何建议或想法,请分享,我真的很感激。

非常感谢你阅读。

0 个答案:

没有答案