Rob*_*itt 5 php frameworks module
我正在寻找将模块系统实现到我的应用程序框架中的方法,模块将是以某种方式更改设计的类文件,以便自动与用户干预集成.
我的框架是一个自定义构建的框架,但与codeigniter非常相似,只是稍微轻一点.
我在模板文件中的想法是调用模块位置,并自动加载和解析模块
<html>
<head>
<title>Welcome to my site</title>
</head>
<body>
<header>
....
<?php $this->call_modules('header') ?>;
</header>
<section>
<aside>
<?php $this->call_modules('sidebar') ?>;
</aside>
</section>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
以便调用以下模块并将内容放在那里:
/system/applications/admin/modules/header/a.php
/system/applications/admin/modules/header/b.php
/system/applications/admin/modules/sidebar/a.php
/system/applications/admin/modules/sidebar/b.php
Run Code Online (Sandbox Code Playgroud)
所以对我来说似乎它可以正常工作,但问题是我之前从未构建过模块系统,而且我觉得这些被归类为钩子.
在我的脑海中,我基本上想要一个由1个类文件和模板组成的简单系统,如果需要,calss文件可能如下所示:
class Module_HelloWorld extends Module
{
public static function info()
{
return array(
'name' => 'Hello Word',
'version' => '1.0.0',
'description' => 'Dispalys "hello World"',
'author' => 'Robert Pitt',
);
}
public function execute($context,$action)
{
//$context would be the current view at the point of execution for the view
//$action would be header / sidebar
}
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题简而言之,为我的框架设计模块系统的最佳方法是什么,允许将3Rd方模块放在目录中然后从管理员安装,而无需太多用户干预?
祝你的 mvc 和 cms 好运。我前段时间也曾实现过同样的想法,我想到的第一个方法很简单。