我的理解的视如下(以防它的可怕的错误,我毕竟新)

  1. 模型都是事情的接口和数据库
  2. 视设计/布局的网页
  3. 控制这里的一切开始的和基本的页面的逻辑

我在使用 但我猜测它不是只局限于,或者可能甚至只是PHP框架。

我在哪里把全球课吗?

我可能有一个型号的产品,然后我运行查询,以收集的20个产品,从数据库。我现在请20个模型,或者我应该有一个单独的类,如果是后者,我在哪里把这个类(其他控制器,将需要使用过)

有帮助吗?

解决方案

在讨论如何处理产品时,模型是错误的用法:每个产品都是价值对象(VO)(或数据传输对象/ DTO,无论哪种更适合您的口腔)。值对象通常具有表包含的相同字段。在您的情况下,ProductVO应该具有Products表中的字段。

模型是数据访问对象(DAO),其方法类似于

findByPk --> returns a single value object
findAll --> returns a collection of value objects (0-n)
etc.

在您的情况下,您将拥有类似上述方法的ProductDAO。然后,ProductDAO将返回ProductVO及其集合。

数据访问对象还可以返回 Business Objects(BO),其中可能包含多个VO以及特定于业务案例的其他方法。

附录: 在您的控制器中,您可以致电ProductDAO以查找所需的产品。 然后将返回的ProductVO传递给视图(作为Java中的请求属性)。然后视图循环显示/显示productVO的数据。

其他提示

模型是业务逻辑发生的应用程序的一部分。模型表示对象之间的现实关系和依赖关系,例如:员工向Manager报告,Manager监督许多Employees,Manager可以将Task分配给Employee,Task在逾期时发出通知。模型CAN和大多数情况下DO与数据库接口,但这不是必需的。

查看基本上是可以显示或帮助显示的所有内容。视图包含模板,模板对象,处理模板组合和嵌套,包含页眉和页脚,并以众所周知的格式(X / HTML,还有XML,RSS / Atom,CSV)生成输出。

控制器是将用户操作转换为模型操作的转换层。换句话说,它告诉模型要做什么并返回响应。控制器方法应尽可能小,所有业务处理应在Model中完成,视图逻辑处理应在View中进行。

现在,回到你的问题。这真的取决于你是否需要为每个产品分别上课。在大多数情况下,一个类就足够了,应该创建20个实例。由于产品代表业务逻辑,它应该属于应用程序的Model部分。

Cake 有3个"零部件":

  1. 行为
  2. 组件
  3. 帮手

逻辑使用的许多模式应由作为行为。我不知道如果笨有这种逻辑或不大,但如果它不,我会尽力实现它如此。你可以阅读有关的行为 在这里,.

(组件有助于控制分享的逻辑和助手帮助的意见相同的方式)。

最简单的方法是:

  1. 每个数据库表都有一个模型类。在这种情况下,它将是一个包含所有产品详细信息的对象。
  2. 将这些类放入包/命名空间,例如com.company.model(Java / C#)
  3. 将DAO类放入com.company.model.dao
  4. 这样的包中
  5. 您的视图将使用会话/请求/控制器中的数据在这种情况下,我将有一个List <!> lt; Product <!> gt;。
  6. 哦,你正在使用PHP。 Dunno如何改变事物,但我想它有一个像现代语言一样的收藏框架。

@亚历山大提到CakePHPs 行为, 组件帮手.这些都是优秀的提取出共同的功能。我找到的行为特别有用,因为当然大部分的业务逻辑进行的模型。我目前正在一个项目,我们的行为,如:

  • 可上锁
  • Publishable
  • Tagable
  • 应课差饷租
  • Commentable

等等。

代码,甚至超越了电视的框架,即代码库,用于各种各样的事情不是绑在特定框架您使用的-在我们的情况下,事情就像编码视频课程等。Cake有 供应商 文件夹。

任何有效地与Cake去在那里。

我怀疑笨没有相当灵活的结构,这是较小的和较轻的比Cake,但是快速看看 Cake手册 看到如何行为、部件、佣工和供应商的文件夹可能是有帮助的。

它应该是一个简单的问题只包含一些共同的助手类模型保持好的和

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top