如何构建PHP模块?

时间:2010-12-26 13:35:27

标签: php mysql content-management-system

我有一个问题要问你。我不知道如何构建一个用于CMS的PHP模块,也许当我创建一个新页面时我想要选择创建的模块,例如 新闻模块,图库模块等。

如何构建它并在PHP CMS中实现这些模块?

1 个答案:

答案 0 :(得分:3)

在您的数据库中,您应该拥有一个包含以下内容的模块表:

  • ID
  • MODULE_NAME
  • module_desc
  • module_folder
  • module_active

这样你就可以保持模块的组织,在你有module_folder的表格中,这应该是模块的位置,例如

cms_root() . "/modules/%module_folder%/main.module.php"

这就是接口派上用场的地方:)

interface IModule
{
    public function __run($param);
    public function __version();
    public function __shutdown();
    //...
}

您还应该有一个名为Module的类,模块将扩展并收集模板/数据库等的权限。

class Module
{
    public $DB,$TPL; /*...*/

     /*
         Functions ehre to help the module gain access to the instance of the page.
     */
}

此外,Module类应该能够执行模块并跟踪已执行的模块,因此在您的核心代码中,您可以说$Module->RunAll()并运行它们。

模块文件可能如下所示:

class Gallery_Module extends Module implements IModule
{
    public function __version()
    {
         return '1.0';
    }

    public function __run()
    {
         //Assign module data to the template :)
    }

    public function __shutdown()
    {
         //Clean old records etc from DB
    }
}

如上所述,在您的核心内,您可以让Module类从数据库中读取活动模块,从文件夹中加载文件并创建该类的实例,然后执行。

希望这有帮助。