我有一个问题要问你。我不知道如何构建一个用于CMS的PHP模块,也许当我创建一个新页面时我想要选择创建的模块,例如 新闻模块,图库模块等。
如何构建它并在PHP CMS中实现这些模块?
答案 0 :(得分:3)
在您的数据库中,您应该拥有一个包含以下内容的模块表:
这样你就可以保持模块的组织,在你有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类从数据库中读取活动模块,从文件夹中加载文件并创建该类的实例,然后执行。
希望这有帮助。