Objektai darbui su įrašais DB

Emilis Dambauskas

2006-04-25

InfoSHOW 2006

Kas tie objektai

Active Record pattern

http://en.wikipedia.org/wiki/Active_record

http://www.martinfowler.com/eaaCatalog/activeRecord.html

http://phplens.com/lens/adodb/docs-active-record.htm

http://framework.zend.com/manual/en/zend.db.tablerow.html

CRUD, SCRUM, etc.

DB

Object

Object

Object

Object

Record

- field1

- field2

assign($data)

updateFields($data)

save() .... insert() / updateWithId()

delete()

getObject($pk)

validate()

getError($field_name)

select($where) ... query()

List (extends Record)

- list[...]

select($where, $order) ... query()

save()

validate()

delete()

BrowseableList (extends List)

- list[...]

select($where, $order) ... query()

save()

validate()

delete()

setPageSize($size)

setActivePage($page)

getTotalCount()

Mūsų sistemėlė

articles, comments, users

list(), show(), adminList(), adminEdit()

articles

comments

users

Record: dbArticle

- id

- title

- time

- user_id

- summary

- text

getAuthor()

getCommentList()

Panaudojimas: validacija

$item->validate()
validate_title()
validate_summary()
validate_text()
$item->save()

<input name=”title”
value=”$item->title”>
$item->getHtmlError('title')

Hidden ID / Item in session

klaidos!

klaida!

ok

Panaudojimas: puslapiavimas

$new_list?

$filter <- Request ?

$sort <- Request

$page <- Request

$filter <- Session ?

$sorting <- Request

$sorting <- Session

$page <- Request

$page <- Session

$list->setPage($page)
$list->select($filter, $sorting)

Rizika: per daug užklausų į DB

$article->getAuthor()

table articles:

- comment_count

dbArticleList:

fetchAuthorInfo()

Kiti geri panaudojimai

Wizards

Duomenų importavimas

DB1

DB2

Dar kartą kelios nuorodos

http://en.wikipedia.org/wiki/Active_record

http://www.martinfowler.com/eaaCatalog/activeRecord.html

http://phplens.com/lens/adodb/docs-active-record.htm

http://framework.zend.com/manual/en/zend.db.tablerow.html

Ačiū už dėmesį!

Pagaminta naudojant tik atviro kodo programas:

Ubuntu Linux 5.10

OpenOffice.org 2.0

Gimp 2.2

Nvu 1.0 (20050928)

Mozilla FireFox 1.0.7

Nes jau tikrai atėjo tam laikas.

2006-04-25T08:51:05