ZF框架資料物件對映模式的思考

2022-09-08 02:33:09 字數 895 閱讀 6611

最近學了zf框架,對手冊中db這一節zend_db_table_row的介紹中說,使用了zend_db_table::find()或::findrow()方法可以返回乙個zend_db_table_row的物件,該物件自動對映到表中的這一行記錄,欄位和類屬性完全關聯在一起(欄位名是下劃線分隔的,屬性名由首個單詞小寫的駝峰式命名,如自動「last_name」,則操作時屬性名「lastname」),獲取任何欄位就直接像操作類屬性一樣,如:

$row = $table->fetchrow('first_name = "robin"');//$table是zend_db_table例項

echo $row->lastname;//假設輸出『bill』

而修改的操作超級方便,直接對屬性賦值後呼叫s**e()方法即可,如:

$row->lastname = 'gates';

$row->s**e();

資料就會自動更新到表中。之後深究了下原始碼,大致還是邏輯有點多,所以自己理一理,這裡貼出乙個簡單的整合該思路的類,按照資料物件對映的模式來思考的,可以有助於理解。

<?php

/** * 資料物件對映模式

* function __get($key) //實現物件操作屬性的方式來操作表字段值

}function __set($key, $value) //對於新的字段可以直接更新進資料表

function __destruct() //析構器的功能實現s**e()邏輯

'";}

$this->db->query("update user set " . implode(', ', $fields) . " where

id = limit 1");}}

}

資料物件對映模式

定義 將物件和資料儲存對映起來,對乙個物件的操作會對映為資料儲存的操作綜合應用例項 在 中實現資料物件對映模式,我們將實現乙個orm類,將複雜的sql語句對映成物件屬性的操作,結合使用資料物件對映模式,工程模式,註冊模式 page new page page index class page fun...

7 資料物件對映模式

比如,new 乙個物件,然後設定一些屬性,就和資料庫中表的一條記錄對應起來。建立表 create table user id int 11 primary key auto increment,name varchar 32 not null,mobile varchar 11 not null,r...

PHP資料物件對映模式

還是 說話 這裡還是遵循策略模式的psr 0 規範 資料表 資料庫連線檔案db.php 如果沒有可以去我的部落格裡面找 入口檔案datauser.php define basedir dir 自動載入在本檔案中沒有被定義的類 require config.php spl autoload regis...