模型视图控制器(MVC)...和通用类?

4
我看到了一些关于我要问的问题的相关内容,但是我无法真正弄明白。 让我们一起来温习一下:
  • 模型是管理数据从和到数据库的类。因此,它们是与数据库相关的类。
  • 视图是HTML部分。基本上是页面的布局。
  • 控制器是应用程序的逻辑部分,并使用模型,从/向视图获取/提供输入/输出。
太棒了。如果我必须使用一个与数据库无关的类,例如会话类、模板类或帮助我使用一些常见逻辑函数的纯逻辑类,那么这些类应该放在哪里?它们是模型还是仅仅是库类?
2个回答

1

1
库类和帮助类有什么区别? - Shoe
2
一般规则是,如果您需要在函数之间共享数据,请创建一个库;否则,请创建一个帮助程序。 - AlienWebguy

0

你把它放在模型类上。模型处理数据逻辑和验证。

控制器只处理用户输入。

视图显示用户看到的内容。


1
如果我有一个类,它只是不从数据库中操作数据。如果我只是有一个类,使我更容易和更清洁地加载应用程序文件...它应该放在哪里? - Shoe
1
@downvoters:仅拥有用于访问数据库的模型是完全可以的。@Charliepiga:然而,OP想要放置的东西(常见函数/Session类等)在我看来最好适合放在另一个地方,例如/library/文件夹中,因为它将包含(通用)代码,这些代码也可以被其他项目使用而无需更改代码。如果这有意义的话 :) - PeeHaa
@PeeHaa,好的,那我应该为那些不使用数据库数据的类创建一个库/文件夹。那么接收、验证用户输入的输出数据的类呢?(例如表单) - Shoe
在这种情况下,即使没有与数据库相关的内容,那也应该在模型类中。我实际上指的是MVC软件架构的严格实现。大多数PHP框架都有支持辅助类的类,这些类可能不是m、v或c的一部分。但最终,如果你严格遵循MVC,你需要看看这样的类的用途。 - Neigyl R. Noval
1
@Charliepiga:这不是代码是否会访问数据库的问题,而是我是否会在其他项目中使用(/能否使用)此代码的问题。这样,您可以拥有多个使用相同库(具有公共函数)的项目。因此,如果更改库(例如修复错误),则所有项目都会更改。如果您有逻辑代码不需要在其他项目中使用(无论它是否访问数据库),我会将其放在模型中。例如,在我的框架中,我有一个表单的基类(具有标准验证),我还在我的项目中有一个表单模型来扩展它。 - PeeHaa
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接