【发布时间】:2010-04-20 22:30:36
【问题描述】:
当我在 MVC 结构中学习使用 OOP 时,我正在尝试尽可能多地遵循良好的做法,所以我向你们寻求一些关于这里让我有点困扰的建议。
我正在写一个网站,我将有许多不同的表格供会员填写(主要是关于他们自己的数据),所以我决定建立一个会员控制器,其中所有与会员有关的表格都在表示为单独的方法。这包括登录/注销方法,以及编辑配置文件数据等。除了这些方法之外,我还有一个方法来生成会员的控制面板小部件,当会员登录时,它是网站上每个页面上的常量. 唯一的问题是,这个控制器中的所有其他方法都具有相同的依赖项和表单模板,所以在构造函数中生成所有这些会很棒,但是由于 control_panel 方法没有相同的依赖项等,我不能为此目的使用构造函数,而是我必须在每个方法中重新声明依赖项和相同的模板 sn-ps。这显然不理想并且不遵循 DRY 原则,但我想知道我应该如何处理 control_panel 方法,因为它与成员相关,这就是为什么我首先将它放在那个控制器中。
我只是在这里过于复杂了,将 control_panel 方法移动到一个简单的帮助类中是否有意义?
以下是控制器的基本方法:
class Member_Controller extends Website_Controller {
public function __construct()
{
parent::__construct();
if (request::is_ajax())
{
$this->auto_render = FALSE; // disable auto render
}
}
public static function control_panel()
{
//load control panel view
$panel = new View('user/control_panel');
return $panel;
}
public function login()
{
}
public function register()
{
}
public function profile()
{
}
public function household()
{
}
public function edit_profile()
{
}
public function logout()
{
}
}
【问题讨论】:
标签: php model-view-controller oop