php - 理解 mvc : difference between a library class and a model class

标签 php model-view-controller

所以我想遵循 mvc 约定,但还没有真正掌握它。

我在理解模型和库类之间的显着区别以及它们之间的关系时遇到了问题。

例如。我想创建类来添加/编辑联系人并将它们添加到组中。

我认为它应该分为 2 个类:Contact 和 Group。

第一个类将创建一个联系人。另一个会将联系人添加到组中。我认为这种划分是完美的,因为他们的逻辑是相互隔离的。 Contact 不关心 Group 是否存在。群组不关心联系人的外观。

所以 Contact 将有这些方法:

$Contact->add($name, $email, $address, $phone) // create an entry in database
$Contact->delete($id) // delete the entry in database
$Contact->edit($id, $name, $email, $address, $phone) // edit the entry in database

和组:

$Group->createGroup($name) // create a group in database
$Group->delete($id) // delete a group in database
$Group->addContact($groupId, $contactId) // add a contact to a group in database

所以这些类显然与数据库一起工作。这是否意味着这些是模型?或者它们是图书馆类,例如。应该放在 CodeIgniter 的 SYSTEM/LIBRARIES 中。如果是后者,那么在这种情况下模型看起来如何使用类?

在这种情况下, Controller 会是什么样子?

如果有人能给我一张大图就太好了!谢谢!

最佳答案

MVC 模式 没有库的概念。您所指的是 MVC 框架的一般使用模式。那就是拥有一个模型文件夹,其中包含通常派生自通用、可重用和独立于应用程序的库类的特定于应用程序的类。

关于php - 理解 mvc : difference between a library class and a model class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2607301/

相关文章:

javascript - Ajax /PHP/JSON : One GET parameter is missing

php - 带有 html 复选框值的 SQL 语法错误

model-view-controller - MVC : add http header: controller or view?

asp.net-mvc - 如何仅允许匿名访问一个 Controller ?

php - 将所有 mysql_* 函数切换为 mysqli_* 函数会导致警告错误

php - 我想使用数字 0-9 作为 mysql 表名。我应该如何使用 `` 反引号编写 sql 查询以防止 sql 查询错误?

javascript - 如何将 ajax.abort() 传播到 Controller

java - 在模型中创建复杂的业务逻辑

django - 在我的应用程序中放置域对象的位置

php - 在从 MySQL 导出的 XML 中使用标签