Php 实用程序类可以是MVC框架中的模型类吗?

Php 实用程序类可以是MVC框架中的模型类吗?,php,model-view-controller,model,utility,Php,Model View Controller,Model,Utility,我正在设计一个MVC框架,但我不知道应该把我的实用程序类放在哪里。我在某个地方读到它说实用类是模型类。这条思路正确吗?或者它们是某种独立类型的类吗?如果它不是存储数据的表示,那么它可能不是模型类。即使如此,如果它仍然表示某种类型的存储数据,但其行为与您的其他模型截然不同,那么无论如何,它可能不属于其他模型 实用程序函数可以是它们的实用程序所属的任何类的一部分,模型、视图或控制器。如果它们更通用一点,那么它们就有点活在MVC设计之外 模型类可以包含数据访问代码、应用程序逻辑。所以在模型中放置是可以

我正在设计一个MVC框架,但我不知道应该把我的实用程序类放在哪里。我在某个地方读到它说实用类是模型类。这条思路正确吗?或者它们是某种独立类型的类吗?

如果它不是存储数据的表示,那么它可能不是模型类。即使如此,如果它仍然表示某种类型的存储数据,但其行为与您的其他模型截然不同,那么无论如何,它可能不属于其他模型


实用程序函数可以是它们的实用程序所属的任何类的一部分,模型、视图或控制器。如果它们更通用一点,那么它们就有点活在MVC设计之外

模型类可以包含数据访问代码、应用程序逻辑。所以在模型中放置是可以的


最好的方法是在Model folder中创建一个文件夹实用程序,并将实用程序类放在那里。

这取决于这些实用程序类在做什么。MVC的主要思想是将表示层(V和C)与其余的应用程序(M)分开。如果实用程序类处理与表示层相关的内容,请将它们放在适当的包中,例如ViewHelpers或InpAuthHandler。如果实用程序功能与其他任何功能相关,请查看它们最适合模型中的哪一层,例如DataAccess实用程序进入DAO包,而MailHelper可能进入服务包,等等。

模型不仅仅是数据库!你知道,当我第一次开始这么做的时候,我确实遇到了很多关于MVC中模型层做了什么的争论和困惑。过了一段时间,我意识到做MVC有很多错误的方法。这是在我开始维护一个旧的代码库之后不久,它至少以三种不同的、糟糕的方式实现了MVC。然而,最连贯的一点是,模型对存储的数据对象进行了建模。这并不意味着它只是一个ORM层,但他们应该知道如何与其他层交互以及如何存储和检索数据。我读过一本书,书中说模型是来自业务层和/或实用程序的类。拥有ViewHelper的想法似乎是将控制器和视图混合在一起。你觉得怎么样?@rix501控制器处理用户界面的输入,并将请求委托给模型。不应处理用户输入。主要思想是将视图完成渲染所需的任何逻辑与视图模板分离。你在书中读到的区别是正确的。然而,公用事业这个术语只是含糊不清。