zend 模型架构

2024-04-04

假设我的数据库中有两个表:项目和用户。我创建了两个扩展 Zend_Db_Table_Abstract 的模型:Model_DbTable_Users and Model_DbTable_Projects.

现在,创建一个实例是一个好的模式吗?Model_DbTable_Projects在 - 的里面Model_DbTable_Users班级 ?换句话说:可以在这个模型中放入任何逻辑吗?或者我应该创建另一个使用它的类Model_DbTable_Users and Model_DbTable_Projects?

我过去常常将所有逻辑放在扩展 Zend_Db_Table_Abstract 的模型中,但在大型项目中,它会使代码非常不干净。那么,您能给我有关模型架构的任何建议吗(文章上的链接非常棒!)。


我是 Zend Framework 项目 1.0 版本的项目负责人。我的贡献主要是 Zend_Db 组件。

我经常advise http://karwin.blogspot.com/2008/05/activerecord-does-not-suck.html人们应该使用领域模型 http://www.infoq.com/minibooks/domain-driven-design-quickly模式并避免贫血域模型 http://www.martinfowler.com/bliki/AnemicDomainModel.html反模式。请记住表不是模型。

您的模型是封装业务逻辑的代码的类(不扩展基类)。模型和表之间的关系不是 IS-A,而是 HAS-A(或 HAS-MANY)。该模型将数据库持久性视为实现细节。模型的使用者不应该知道您的数据库结构(这允许您更改数据库结构而不更改模型的接口)。

我基本上是在重复我给出的答案Zend 框架中的模型 https://stackoverflow.com/questions/294875/models-in-the-zend-framework/295051#295051.

这里还有一些阅读内容:

  • http://weierophinney.net/matthew/archives/202-Model-Infrastruct.html http://weierophinney.net/matthew/archives/202-Model-Infrastructure.html
  • http://blog.astrumfutura.com/archives/373-The-M-in-MVC-Why-Models-are-Misunderstood-and-Unappreciated.html http://blog.astrumfutura.com/archives/373-The-M-in-MVC-Why-Models-are-Misunderstood-and-Unappreciated.html
  • http://n4.nabble.com/Another-Model-Design-Thread-td670076.html http://n4.nabble.com/Another-Model-Design-Thread-td670076.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

zend 模型架构 的相关文章

随机推荐

  • 使用 Python 将 JSON 插入 MySQL

    我有一个 Python 中的 JSON 对象 我正在使用 Python DB API 和 SimpleJson 我正在尝试将 json 插入 MySQL 表中 目前出现错误 我相信这是由于 JSON 对象中的单引号 造成的 如何使用 Pyt
  • 如何识别该图像中的矩形?

    我有一张带有水平线和垂直线的图像 事实上 这张图片是BBC网站转换成水平线和垂直线的 我的问题是我希望能够找到图像中的所有矩形 我想编写一个计算机程序来查找所有矩形 有谁知道如何做到这一点或提出有关如何开始的想法 作为一个人 这个任务对于我
  • 为什么 Bootstrap 的滚动间谍不工作?

    我有一个简单的 Bootstrap 模式设置 在模式中我有内容nav并设置了滚动间谍 但是 它不起作用 我看到它被激活 但导航从未更新 完整的源代码在这里太长了 你将无法看到我得到的效果 所以我设置了一个jsfiddle http jsfi
  • AAudio 或 OpenSL

    我开始用 C 实现我的游戏音频部分 我看到有 2 个可用的音频框架 AAudio https developer android com ndk guides audio aaudio aaudio html https developer
  • 如何在Unity3D中创建脚本图标?

    I created a scipt and editor for it Now I want to assosiate an icon with it like this 这样的事该怎么办呢 找不到任何文档 http unity3d com
  • 如何从 .NET Core 3.0 WPF 应用程序使用 SOAP Web 服务

    I have a SOAP web service I want to consume it in my WPF app I am using NET Core 3 0 Visual Studio 2019 So I used the Mi
  • 如何计算两个时间字符串之间的时间间隔

    我有两个时间 一个开始时间和一个停止时间 格式为 10 33 26 HH MM SS 我需要两个时间之间的差异 我一直在浏览 Python 文档并在线搜索 我想它可能与日期时间和 或时间模块有关 我无法让它正常工作 并且只在涉及约会时寻找如
  • 在 do...while 中将相关表达式匹配设置为 false

    我正在尝试编写一些非常基本的代码 但我也在正则表达式上挑战自己 我已经能够将代码搞乱到一定程度 但我真正遇到的问题是我试图在表达式为 false 时运行 do while 循环 此时我完全没有收到任何错误 但 do while 循环继续运行
  • 线程冻结主 UI

    Hello我目前正在编写一个服务器监控应用程序 Classes public class Server public string SERVERNAME public string ENVIRONMENT public string VER
  • java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.LocalSessionFactoryBean

    我是 Spring 新手 这是我的第一个示例 JSF 2 PrimeFaces 3 Spring 和 Hibernate 集成 这是pom xml
  • 如何将数组(即列表)列转换为向量

    问题的简短版本 考虑以下代码片段 假设spark已经设置为一些SparkSession from pyspark sql import Row source data Row city Chicago temperatures 1 0 2
  • MATLAB 错误:“以前似乎被用作函数或命令”

    我想创建一个名为 E7stats 的函数 它对 csv 文件中包含的第一个期中考试的分数执行简单的统计分析 该函数接受一个字符串输入 filename csv 文件的名称 并返回一个输出 一个 1 2 结构体数组 S 其两个条目都包含四个字
  • PHP include 导致页面顶部出现空白

    我正在制作的网站遇到问题 我的页面顶部有一行空白 我不知道它是从哪里来的 这可能是因为 php 在我的页面中出现了额外的换行符include 或者可能只是一些有问题的CSS 我得到了它 我必须承认 这是一件非常奇怪的事情 This http
  • 如何总结水晶报表中的公式字段?

    如何在水晶报表中的公式字段上添加运行总计或汇总字段 Sample Report Serial No Premium Commission Net Premium Commission 1 10 4 6 2 40 30 10
  • 解决方案资源管理器中的 Visual Studio 心形叠加。这是什么意思?

    在解决方案资源管理器中 您有时会在类定义节点中看到心形覆盖 它意味着什么 我相信您指的是信号图标 当类型 成员是内部 C 或朋友 VB NET 时 心形会显示在类型 成员上 图标的含义是记录在 Microsoft 文档中 https lea
  • Openpyxl如何通过索引从工作表中获取行

    使用 Openpyxl 和 python3 5 我尝试使用下标从 Excel 工作表中获取第一行 但出现错误 after getting filename after loading worksheet to get the first r
  • C# NotifyIcon ShowBalloonTip 超时

    在我的 C 2 0 框架 应用程序中 我使用通知图标控件 我想从此控件中显示气球提示 但是 showBalloonTip 事件我限制为超时 我想永远显示这个气球 我尝试使用一个计时器来一次又一次地显示气球 但在 vista 中 气球有淡入淡
  • mb_convert_case 未定义函数(Symfony2 FOS/UserBundle)

    在我的 Symfony2 应用程序上 我收到错误 致命错误 在第 18 行 Applications MAMP htdocs application vendor bundles FOS UserBundle Util Canonicali
  • 对JPanel函数的关注:paintComponent()

    你好 我是java编程新手 我需要有人向我解释这些代码行 public class drawpanel extends JPanel public void paintComponent Graphics g super paintComp
  • zend 模型架构

    假设我的数据库中有两个表 项目和用户 我创建了两个扩展 Zend Db Table Abstract 的模型 Model DbTable Users and Model DbTable Projects 现在 创建一个实例是一个好的模式吗