[英]What is a model and what is not a model php
我對如何建立模型感到很困惑,在過去的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和getters被歸類為Value Object模式,可以這樣使用:
$s = new Student();
$s->setStudentNumber(143);
$s->setFirstName('FooName');
$s->setLastName('BarName');
並將其傳遞到數據訪問對象(StudentDAO)中,如下所示:
$sDao = new StudentDAO($s);
$sDao->add();
DAO在哪里擴展了數據庫類,所以我可以做CRUD。
問題是,嗯,我很確定我會因為錯過太多原則而受到很多指責,但是那是什么? 如何創建模型? 謝謝! 好吧,我知道有很多答案可以告訴我關於DataMappers,工廠和其他東西的信息,而我對此不太了解。
型號 :
控制器 :
依賴關系:服務->映射器-> Dao,即Dao被注入Mapper,Mapper被注入Service
這樣,您可以將數據源從數據庫更改為Webservie,並且業務邏輯將保持不變。
注意:我建議Dao和Mapper都有接口
正如您所強調的那樣,您對很多原理都不了解,所以我建議您看一下http://symfony.com/並嘗試對模型層使用該理論(因為很難將其與獨立項目一起使用)。 (或其他一些類似的MVC框架)一旦知道如何使用它們,便會開始了解這些原理。 Symfony易於設置以運行基本的Web應用程序,並且具有良好的文檔說明。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.