首先是插件的管理类的实现:
<?
/**
* STBLOG PluginManager Class
*
* 插件机制的实现核心类
*
* @package STBLOG
* @subpackage Libraries
* @category Libraries
* @author Saturn
* @link http://www.cnsaturn.com/
*/
class PluginManager
{
/**
* 监听已注册的插件
*
* @access private
* @var array
*/
private $_listeners = array();
/**
* 构造函数
*
* @access public
* @return void
*/
public function __construct()
{
/*#这里$plugin数组包含我们获取已经由用户激活的插件信息
#为演示方便,我们假定$plugin中至少包含
#$plugin = array(
# 'name' => '插件名称',
# 'directory'=>'插件安装目录'
#);*/
$plugins = get_active_plugins();// #这个函数请自行实现
if ($plugins) {
foreach ($plugins as $plugin) {
//假定每个插件文件夹中包含一个actions.php文件,它是插件的具体实现
if (@file_exists(STPATH . 'plugins/' . $plugin[