我对如何构建我的模型感到很困惑,在过去的9个月里我没理解这一点。虽然我正在阅读和观看所有参考文献,但@teresko给了我。
为了进一步缩小我的问题范围,我将举例说明我之前是如何做到的。
假设我的student
实体有student_number
,first_name,
last_name`
然后我将创建我所谓的model
,(我的教授做了同样的事情,但我知道这是非常错误的)。我不知道我的教授是否了解Value Objects,但我知道。
private $student_number;
private $first_name;
private $last_name;
public function setStudentNumber($sn) {$this->student_number = $sn}
public function getStudentNumber() {return $this->student_number}
... and so on for other properties
如果我是正确的,这个setter和getter被归类为Value Object模式,可以像这样使用:
$s = new Student();
$s->setStudentNumber(143);
$s->setFirstName('FooName');
$s->setLastName('BarName');
并将其传递给数据访问对象(StudentDAO),如下所示:
$sDao = new StudentDAO($s);
$sDao->add();
DAO扩展了数据库类,所以我可以做CRUD。
问题是,我很确定我会在这里得到很多责骂,因为我错过了很多原则,但那些是什么?如何创建模型?谢谢!好吧,我知道很多答案会讲述DataMappers,Factories和stuffs,我无法理解。
答案 0 :(得分:3)
<强>模型强>:
<强>控制器强>:
相关性: 服务 - &gt;映射器 - &gt;道 即Dao注入Mapper,Mapper注入服务
通过这种方式,您可以将数据源从数据库更改为webservie&amp;你的业务逻辑将保持不变。
注意:我推荐,Dao&amp; Mapper都有一个接口
答案 1 :(得分:1)
正如您所强调的那样,您不了解很多原则,我建议您查看http://symfony.com/并尝试使用学说(因为使用独立项目的学说很难)模型层。 (或其他一些类似的MVC框架) 一旦你知道如何使用它们,你就会开始了解它们的原理。 Symfony易于设置以运行基本的Web应用程序并且具有良好的文档。