Php MVC:这些模型应该是静态的吗?
我在使用MVC模式时遇到问题;我创建了多个模型,我使用每个模型来处理分组任务连接、数据库等 问题是,在创建了基本模型之后,我在控制器中得到了这样的代码Php MVC:这些模型应该是静态的吗?,php,model-view-controller,Php,Model View Controller,我在使用MVC模式时遇到问题;我创建了多个模型,我使用每个模型来处理分组任务连接、数据库等 问题是,在创建了基本模型之后,我在控制器中得到了这样的代码 class Controller { function doStuffz() { $accounts = new AccountsModel(); $DB = new DBModel(); $HTML = new HTMLModel(); //
class Controller
{
function doStuffz()
{
$accounts = new AccountsModel();
$DB = new DBModel();
$HTML = new HTMLModel();
//More models...
$accountData = $accounts->getAccount($id);
$DB->saveAccount($accountData);
$HTML->display($accountData);
//More code...
}
}
我已经在我的类中的几乎所有函数中创建了模型实例,尽管将它们设置为静态似乎是绝对好的
在应用了经验法则之后,似乎所有这些模型都应该是静态的,这在MVC模式中是一种糟糕的做法吗
如果我让这些模型是静态的,我可能会得到这样的结果:
class Controller
{
function doStuffz()
{
$accountData = AccountModel::getAccount($id);
DBModel::saveAccount($accountData);
HTMLModel::display($accountData);
//More code...
}
}
这对我来说更有意义,而且它看起来更干净、更短。DBModel、HTMLModel实际上不是模型,而是服务
使用静态方式很方便,但也有缺点:全局范围、紧密依赖、难以测试。它们与模型有什么区别?我的意思是,我见过以模型命名的类,它们的功能与DBModelrunning查询完全相同。@AzizAG,好的。你抓住我了:^。我不知道如何真正区分服务和型号。我喜欢这样。无论类是服务还是模型,它都应该是静态的。很公平。所以,你会得到你的缺点。关于这是一个模型还是一个服务?问题:这是一个概念性的问题,而不是仅仅通过查看代码就可以回答的问题。服务是为您做事情的类,而模型是存储关于和/或表示特定类型的数据的类。通常,数据库表到模型类几乎是一对一的映射。