日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php数据访问层设计,php - Zend框架数据访问层(DAL) - 堆栈内存溢出

發(fā)布時(shí)間:2023/12/10 php 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php数据访问层设计,php - Zend框架数据访问层(DAL) - 堆栈内存溢出 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

好吧,在處理Data Access Layer ,您必須考慮的第一件事是該層還具有子層 ,在現(xiàn)代框架中很難找到名為“ dal”的文件夾(我以Zend為基礎(chǔ)框架和Symfony)。

其次,關(guān)于ActiveRecord ,您必須知道默認(rèn)情況下Zend Frameworks 不會(huì)實(shí)現(xiàn)它 。 大多數(shù)教程都采用最簡單的方法來教授新概念。 通過簡單的示例, 業(yè)務(wù)邏輯的數(shù)量很少,因此,它們沒有添加另一層復(fù)雜性(在數(shù)據(jù)庫和模型對象之間進(jìn)行映射),而是通過兩種基本模式構(gòu)成了domain layer (模型): Table Data Gateway和Row Data Gateway 。 對于初學(xué)者來說,這是足夠的信息。

在對其進(jìn)行分析之后,您將看到ActiveRecord和行數(shù)據(jù)網(wǎng)關(guān)模式之間的一些相似之處。 主要區(qū)別在于ActiveRecord對象(可持久實(shí)體) 承載業(yè)務(wù)邏輯,而行數(shù)據(jù)網(wǎng)關(guān)僅表示數(shù)據(jù)庫中的一行 。 如果在代表數(shù)據(jù)庫行的對象上添加業(yè)務(wù)邏輯,則它將成為ActiveRecord對象。

此外,在Zend Framework 快速入門之后 , 在域模型部分 ,您將意識(shí)到還有另一個(gè)組件,它使用了Data Mapper Pattern 。

因此,如果您的DAL的主要目的是在業(yè)務(wù)對象(模型)和存儲(chǔ)之間映射數(shù)據(jù),則此任務(wù)的職責(zé)將委托給數(shù)據(jù)映射器 ,如下所示:

class Application_Model_GuestbookMapper

{

public function save(Application_Model_Guestbook $guestbook);

public function find($id);

public function fetchAll();

}

這些方法將與Database Abstraction Layer進(jìn)行交互,并使用數(shù)據(jù)填充域?qū)ο蟆?遵循以下原則:

public function find($id, Application_Model_Guestbook $guestbook)

{

$result = $this->getDbTable()->find($id);

if (0 == count($result)) {

return;

}

$row = $result->current();

$guestbook->setId($row->id)

->setEmail($row->email)

->setComment($row->comment)

->setCreated($row->created);

}

如您所見, Data Mappers與Zend_Db_Table實(shí)例進(jìn)行交互,該實(shí)例使用Table Data Gateway Pattern進(jìn)行交互。 另一方面, $this->getDbTable->find()返回Zend_Db_Table_Row的實(shí)例,該實(shí)例實(shí)現(xiàn)行數(shù)據(jù)網(wǎng)關(guān)模式 (這是代表數(shù)據(jù)庫行的對象)。

提示: domain object本身的guestbook實(shí)體, 并沒有通過在DataMapper的的find()方法創(chuàng)建的 ,相反,這個(gè)想法是, 對象的創(chuàng)建工廠的任務(wù) ,你必須注入的依賴,以實(shí)現(xiàn)所謂的依賴倒置原則(DIP) (SOLID原則的一部分)。 但這是另一個(gè)問題,超出了問題的范圍。

映射的東西從這里開始:

$guestbook->setId($row->id)

->setEmail($row->email)

->setComment($row->comment)

->setCreated($row->created);

到目前為止,我想我已經(jīng)回答了您的主要問題,您的結(jié)構(gòu)如下:

application/models/DbTable/Guestbook.php

application/models/Guestbook.php

application/models/GuestbookMapper.php

因此,如ZF快速入門中所示:

class GuestbookController extends Zend_Controller_Action

{

public function indexAction()

{

$guestbook = new Application_Model_GuestbookMapper();

$this->view->entries = $guestbook->fetchAll();

}

}

也許您想為數(shù)據(jù)映射器創(chuàng)建一個(gè)單獨(dú)的文件夾。 只是改變:

application/models/GuestbookMapper.php

application/models/DataMapper/GuestbookMapper.php

班級名稱將是

class Application_Model_DataMapper_GuestbookMapper

我已經(jīng)看到您想將domain model objects分成模塊。 同樣,您可能需要遵循ZF的modules目錄和命名空間指南 。

最后提示:我花了很多時(shí)間編寫自己的數(shù)據(jù)映射器,以最終意識(shí)到,當(dāng)應(yīng)用程序與許多相關(guān)實(shí)體一起增長時(shí),維護(hù)對象映射是噩夢 。 (例如,包含對用戶對象的引用的Account對象,包含角色的用戶等等)在這一點(diǎn)上編寫映射內(nèi)容并不容易。 因此,如果您確實(shí)想要一個(gè)真正的對象關(guān)系映射器,我強(qiáng)烈建議您首先研究遺留框架如何執(zhí)行此類任務(wù)并可能使用它。 因此,使用Doctrine 2可以節(jié)省一些時(shí)間,這是迄今為止使用DataMapper模式的最佳(IMO) 之一 。

而已。 您仍然可以使用/dal目錄存儲(chǔ)DataMappers,只需注冊名稱空間 ,以便自動(dòng)加載器可以找到它。

總結(jié)

以上是生活随笔為你收集整理的php数据访问层设计,php - Zend框架数据访问层(DAL) - 堆栈内存溢出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 啪免费视频 | 僵尸叔叔在线观看国语高清免费观看 | 日韩 欧美 亚洲 国产 | 久久亚洲精华国产精华液 | 国产又粗又长又黄的视频 | 91亚州| 天天干视频在线 | 日韩欧美大片在线观看 | 欧美少妇xx| 国产又色又爽又黄 | 欧美日韩激情 | 天天插夜夜爽 | 欧美国产日韩一区二区三区 | 亚洲一区二区观看播放 | 久久激情五月 | 亚洲伦理一区二区三区 | 免费国产高清 | 欧美一区二区三区激情视频 | 99久久精品久久久久久清纯 | 中文字幕日韩欧美在线 | 国产精品一区二区免费看 | 国产尤物在线 | 97在线视频免费 | 精品在线一区二区三区 | 无码精品国产一区二区三区免费 | 亚洲视频一二三四 | 热re99久久精品国产99热 | 奇米一区二区三区 | 一区二区三区亚洲视频 | 99久久精品免费视频 | 日本不卡影院 | 午夜伦伦电影理论片费看 | 玩日本老头很兴奋xxxx | 日本极品少妇 | 欧美aaa级片 | 久久久夜色精品 | 久草综合在线视频 | 亚洲AV无码乱码国产精品牛牛 | 午夜性福利 | 欧美日韩免费看 | 久久久福利视频 | 四虎成人永久免费视频 | 羞羞的视频在线观看 | 欧美色激情| 羞羞动漫在线观看 | 久久99伊人 | 日韩欧美中文字幕一区二区三区 | 四虎影| 伊人成人在线观看 | 色综合加勒比 | 亚洲17p| 综合九九 | 30一40一50老女人毛片 | 奇米7777| 91欧美日韩麻豆精品 | 亚洲精品污| 国产精品色悠悠 | 国产三级av片 | 伊人天堂av | 国产高潮av | 久久9久久 | 国产亚洲精品女人久久久久久 | 国产一区二区三区18 | 97精品一区 | 国产情侣呻吟对白高潮 | 日韩一区二区在线观看 | 午夜小福利 | 日韩av手机在线播放 | 在线97| 亚洲激情欧美色图 | 久热中文 | 中文字幕精品视频在线 | 欧美老女人性视频 | 激情视频在线播放 | xxxxx色| 日本精品一区视频 | 亚洲天堂资源 | 国产aⅴ激情无码久久久无码 | 国产一区二区视频在线免费观看 | 五月天av影院 | 国产一区视频在线免费观看 | 18日本xxxxxxxxx95 国产又好看的毛片 | 99ri国产在线 | 亚洲性图一区二区三区 | 国产精品6666 | 96久久 | 夜色伊人 | 亚洲欧洲免费 | 欧美日韩999| 国产激情文学 | 一区二区三区国产精品 | 欧美永久免费 | 国产肥熟| 伊人蕉| 四虎音影 | 亚洲韩国精品 | 亚洲AV乱码国产精品观看麻豆 | 日本色影院 | 男人的天堂免费视频 |