Å×À̺í Ŭ·¡½º¿¡ ´ëÇØ¼ find()
ȤÀº fetchAll()
¸Þ¼Òµå·Î Äõ¸®¸¦ ½ÇÇàÇϸé,
µ¹·ÁÁÖ¾îÁö´Â °á°ú´Â Zend_Db_Table_Rowset_Abstract
ÇüÅÂÀÇ ¿ÀºêÁ§Æ®°¡ µË´Ï´Ù.
Çà ¼¼Æ®¿¡´Â,Zend_Db_Table_Row_Abstract
(À»)¸¦ °è½ÂÇÑ ¿ÀºêÁ§Æ®°¡ Æ÷ÇԵ˴ϴÙ.
Çà ¼¼Æ®¸¦ »ç¿ëÇØ °¢ Çà ¿ÀºêÁ§Æ®¿¡ ´ëÇØ¼ ¼ø¼¿¡ ¾×¼¼½º ÇØ,
ÇàÀÇ µ¥ÀÌÅ͸¦ ÀоîµéÀ̰ųª º¯°æÇϰųª ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Zend_Db_Table_Abstract
¿¡´Â find()
(¿Í)°ú
fetchAll()
±×·¸´Ù°í ÇÏ´Â ¸Þ¼Òµå°¡ ÀÖ½À´Ï´Ù.
À̰͵éÀº ¾î´ÀÂÊÀ̳ª Zend_Db_Table_Rowset_Abstract
ÇüÅÂÀÇ ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù.
·Ê 10.123. Çà ¼¼Æ®ÀÇ ÃëµæÀÇ ¿¹
<?php
$bugs = new Bugs();
$rowset = $bugs->fetchAll("bug_status = 'NEW'");
Åë»óÀº, Çà ¼¼Æ® ±× ÀÚüº¸´Ù ±× Áß¿¡ Æ÷ÇԵǴ Çà ÂÊÀÌ Áß¿äÇÏ°Ô µË´Ï´Ù. ÀÌ ¸¶µð¿¡¼´Â, Çà ¼¼Æ®¸¦ ±¸¼ºÇÏ´Â ÇàÀÇ Á¤º¸¸¦ ÃëµæÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
¿Ã¹Ù¸¥ Çü½ÄÀÇ Äõ¸®¿©µµ, °á°ú°¡ Á¦·ÎÇàÀÌ µÇ´Â °ÍÀ» ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¾î, ÃßÃâ Á¶°Ç¿¡ ÀÏÄ¡ÇÏ´Â ÇàÀÌ µ¥ÀÌŸº£À̽º³»¿¡ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì µîÀÔ´Ï´Ù.
µû¶ó¼, Çà ¼¼Æ® ¿ÀºêÁ§Æ®ÀÇ ³»¿ëÀÇ Çà ¿ÀºêÁ§Æ®ÀÇ °³¼ö°¡ Á¦·Î°¡ µÇ±âµµ ÇÕ´Ï´Ù.
Zend_Db_Table_Rowset_Abstract
ÇÏ
Countable
ÀÎÅÍÆäÀ̽º¸¦ ½ÇÀåÇϰí ÀÖÀ¸¹Ç·Î,
count()
(À»)¸¦ »ç¿ëÇϸé Çà ¼¼Æ®³»ÀÇ ÇàÀÇ ¼ö¸¦ Á¶»çÇÒ ¼ö ÀÖ½À´Ï´Ù.
·Ê 10.124. Çà ¼¼Æ®³»ÀÇ ÇàÀÇ ¼ö¸¦ ¼¾´Ù
<?php
$rowset = $bugs->fetchAll("bug_status = 'FIXED'");
$rowCount = count($rowset);
if ($rowCount > 0) {
echo "¹ß°ßµÈ Çà¼ö´Â $rowCount ÀÔ´Ï´Ù";
} else {
echo 'Äõ¸®¿¡ ¸ÅÄ¡ÇÏ´Â ÇàÀÌ ¾ø½À´Ï´Ù';
}
·Ê 10.125. Çà ¼¼Æ®·ÎºÎÅÍÀÇ ´ÜÀÏÀÇ ÇàÀÇ Àбâ
Çà ¼¼Æ®·ÎºÎÅÍ Çà¿¡ ¾×¼¼½ºÇϱâ À§ÇÑ Á¦ÀÏ °£´ÜÇÑ ¹æ¹ýÀº
current()
¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.
À̰ÍÀº, Çà ¼¼Æ®¿¡ Æ÷ÇԵǴ Çà¼ö°¡ ÇϳªÀÎ °æ¿ì¿¡ ÃÖÀûÀÔ´Ï´Ù.
<?php
$bugs = new Bugs();
$rowset = $bugs->fetchAll("bug_id = 1");
$row = $rowset->current();
Çà ¼¼Æ®¿¡ Æ÷ÇԵǴ Çà¼ö°¡ Á¦·ÎÀÇ °æ¿ì,current()
ÇÏÁö¸¸ µ¹·ÁÁÖ´Â °ªÀº PHP ÀÇ null
°ªÀÌ µË´Ï´Ù.
·Ê 10.126. Çà ¼¼Æ®ÀÇ Â÷·ÊÂ÷·Ê ó¸®
Zend_Db_Table_Rowset_Abstract
(À»)¸¦ °è½ÂÇÑ ¿ÀºêÁ§Æ®´Â
SeekableIterator
ÀÎÅÍÆäÀ̽º¸¦ ½ÇÀåÇϰí ÀÖ½À´Ï´Ù.Áï,
foreach
·çÇÁ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù.
À̰ÍÀ» »ç¿ëÇØ ÃëµæÇÑ °³°³ÀÇ °ªÀº Zend_Db_Table_Row_Abstract
¿ÀºêÁ§Æ®°¡ µÇ¾î, À̰ÍÀÌ Å×À̺íÀÇ °¢ Çà¿¡ ´ëÀÀÇÕ´Ï´Ù.
<?php
$bugs = new Bugs();
// Å×À̺íÀÇ ¸ðµç ·¹Äڵ带 ÃëµæÇÕ´Ï´Ù
$rowset = $bugs->fetchAll();
foreach ($rowset as $row) {
// Ãâ·ÂÀº 'Zend_Db_Table_Row' ȤÀº °Å±â¿¡ ´àÀº °ÍÀÌ µË´Ï´Ù
echo get_class($row) . "n";
// ÇàÀÇ Ä÷³À» ÀоîµéÀÔ´Ï´Ù
$status = $row->bug_status;
// ÇöÀçÀÇ ÇàÀÇ Ä÷³ÀÇ °ªÀ» º¯°æÇÕ´Ï´Ù
$row->assigned_to = 'mmouse';
// º¯°æÀ» µ¥ÀÌŸº£À̽º¿¡ ½á³À´Ï´Ù
$row->save();
}
·Ê 10.127. Çà ¼¼Æ®³»ÀÇ ±âÁ¸ÀÇ À§Ä¡¿¡ÀÇ À̵¿
SeekableIterator
(Àº)´Â,
ÀÌÅ×·¹ÀÌŸ³»ÀÇ Æ¯Á¤ÀÇ À§Ä¡·Î À̵¿ÇÒ ¼ö ÀÖ½À´Ï´Ù.
±× ¶§¹®¿¡(À§ÇØ) »ç¿ëÇÏ´Â °ÍÀÌ seek()
¸Þ¼ÒµåÀÔ´Ï´Ù.
Çà ¹øÈ£¸¦ °Ç³×ÁÖ¸é, Çà ¼¼Æ®³»ÀÇ ±× ´ÙÀ½ÀÇ À§Ä¡·Î À̵¿ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Çà ¹øÈ£´Â 0 (À¸)·ÎºÎÅÍ ½ÃÀ۵Ǵ °Í¿¡ ÁÖÀÇÇսôÙ.
À妽º°¡ À߸øµÇ¾î ÀÖ´Â °æ¿ì, ȤÀº Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â ¿¹¿Ü°¡ ½½·Î¿ì µË´Ï´Ù.
count()
(À»)¸¦ »ç¿ëÇØ °á°úÀÇ Çà¼ö¸¦ È®ÀÎÇÏ°í ³ª¼ À̵¿Çϵµ·Ï ÇսôÙ.
<?php
$bugs = new Bugs();
// Å×À̺íÀÇ ¸ðµç ·¹Äڵ带 ÃëµæÇÕ´Ï´Ù
$rowset = $bugs->fetchAll();
// ÀÌÅ×·¹ÀÌŸ¸¦ 9 ¹øÂ°ÀÇ ¿ä¼Ò·Î À̵¿ÇÕ´Ï´Ù (ÃÖÃÊÀÇ ¿ä¼Ò°¡ Á¦·ÎÀÔ´Ï´Ù)
$rowset->seek(8);
// ±×°ÍÀ» ÃëµæÇÕ´Ï´Ù
$row9 = $rowset->current();
// ±×¸®°í »ç¿ëÇÕ´Ï´Ù
$row9->assigned_to = 'mmouse';
$row9->save();
}
getRow()
(Àº)´Â, À§Ä¡¸¦ ¾Ë ¼ö ÀÖ°í ÀÖ´Â °æ¿ì¿¡
Çà ¼¼Æ®³»ÀÇ Æ¯Á¤ÀÇ ÇàÀ» ÃëµæÇϱâ À§ÇÑ ¸Þ¼ÒµåÀÔ´Ï´Ù.
±×·¯³ª, ÀÌ Á¤µµÄ¡´Â Á¦·Î·ÎºÎÅÍ ¼¼±â ½ÃÀÛÇÏ´Â °ÍÀ» ÀØÁö ¾Êµµ·Ï ÇսôÙ.
getRow()
ÀÇ ÃÖÃÊÀÇ ÆÄ¶ó¹ÌÅÍ´Â, À§Ä¡¸¦ ³ªÅ¸³»´Â Á¤¼öÄ¡ÀÔ´Ï´Ù.
2 ¹øÂ°ÀÇ ÆÄ¶ó¹ÌÅÍ´Â ¿É¼ÇÀ¸·Î,boolean °ªÀ» ÁöÁ¤ÇÕ´Ï´Ù.
À̰ÍÀº,Rowset ÀÌÅ×·¹ÀÌŸµµ µ¿½Ã¿¡ ±× ÀÚ¸®¼Ò¿¡ À̵¿½ÃŰ´ÂÁö ¾î¶²Áö¸¦ ³ªÅ¸³À´Ï´Ù
(µðÆúÆ®´Â false ÀÔ´Ï´Ù).ÀÌ ¸Þ¼Òµå´Â µðÆúÆ®¿¡¼´Â
Zend_Db_Table_Row ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù.
ÁöÁ¤ÇÑ À§Ä¡°¡ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â ¿¹¿Ü¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.
¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
<?php
$bugs = new Bugs();
// Å×À̺íÀÇ ¸ðµç ·¹Äڵ带 ÃëµæÇÕ´Ï´Ù
$rowset = $bugs->fetchAll();
// 9 ¹øÂ°ÀÇ ¿ä¼Ò¸¦ ÃëµæÇÕ´Ï´Ù
$row9->getRow(8);
// ±×¸®°í »ç¿ëÇÕ´Ï´Ù
$row9->assigned_to = 'mmouse';
$row9->save();
}
°³°³ÀÇ Çà ¿ÀºêÁ§Æ®¿¡ ¾×¼¼½º Çϸé, ´ÙÀ½Àº Ç×10.6. ¡¸Zend_Db_Table_Row¡¹ ±×¸®°í ¼³¸íÇϰí ÀÖ´Â ¸Þ¼Òµå±ºÀ» ÀÌ¿ëÇØ ÇàÀ» Á¶ÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù.
Çà ¼¼Æ®³»ÀÇ ¸ðµç µ¥ÀÌÅÍ¿¡ ´ëÇØ¼ ¹è¿·Î¼ ¾×¼¼½º ÇÏ·Á¸é ,
Çà ¼¼Æ® ¿ÀºêÁ§Æ®ÀÇ toArray()
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
À̰ÍÀº, °¢ Çà ´ÜÀ§·Î ÇϳªÀÇ ¿ä¼Ò°¡ µÇ´Â ¹è¿À» µ¹·ÁÁÝ´Ï´Ù.
°¢ ¿£Æ®¸®´Â ¿¬»ó ¹è¿ÀÌ µÇ¾î, Ä÷³¸í°ú ±× °ªÀ» °ü·ÃÁöÀ» ¼ö ÀÖ°í ÀÖ½À´Ï´Ù.
·Ê 10.128. toArray() ÀÇ »ç¿ë¹ý
<?php
$bugs = new Bugs();
$rowset = $bugs->fetchAll();
$rowsetArray = $rowset->toArray();
$rowCount = 1;
foreach ($rowsetArray as $rowArray) {
echo "row #$rowCount:n";
foreach ($rowArray as $column => $value) {
echo "t$column => $valuen";
}
++$rowCount;
echo "n";
}
toArray()
ÇÏÁö¸¸ µ¹·ÁÁÖ´Â ¹è¿Àº, °»½ÅÇÒ ¼ö ¾ø½À´Ï´Ù.
Áï, ¹è¿³»ÀÇ °ªÀ» º¯°æÇÏ´Â °ÍÀº °¡´ÉÇÕ´Ï´Ù¸¸,
±×°ÍÀ» µ¥ÀÌŸº£À̽º¿¡ ¹Ý¿µ½Ãų ¼ö ¾ø½À´Ï´Ù.
Zend_Db_Table_Rowset_Abstract
ÇüÅÂÀÇ ¿ÀºêÁ§Æ®´Â ½Ã¸®¾Æ¶óÀÌÁî °¡´ÉÇÕ´Ï´Ù.
°³º°ÀÇ Çà ¿ÀºêÁ§Æ®¸¦ ½Ã¸®¾Æ¶óÀÌÁî ÇÏ´Â °Í°ú °°Àº ¹æ½ÄÀ¸·Î,
Çà ¼¼Æ®¸¦ ½Ã¸®¾Æ¶óÀÌÁî ÇØ Àá½Ã ÈÄ¿¡ ±×°ÍÀ» º¹¿øÇÒ ¼ö ÀÖ½À´Ï´Ù.
·Ê 10.129. Çà ¼¼Æ®ÀÇ ½Ã¸®¾Æ¶óÀÌÁî
PHP ÀÇ serialize()
ÇÔ¼ö¸¦ »ç¿ëÇϰí,
Çà ¼¼Æ® ¿ÀºêÁ§Æ®ÀÇ ¾Æ¸£¹ÙÀÌÆ® ½ºÆ®¸²À» Æ÷ÇÔÇÑ ¹®ÀÚ¿À» ÀÛ¼ºÇÕ´Ï´Ù.
<?php
$bugs = new Bugs();
$rowset = $bugs->fetchAll();
// ¿ÀºêÁ§Æ®¸¦ ½Ã¸®¾Æ¶óÀÌÁî ÇÕ´Ï´Ù
$serializedRowset = serialize($rowset);
// À̰ÍÀ¸·Î,$serializedRowset (À»)¸¦ ÆÄÀÏ µî¿¡ ½á³¾ ¼ö ÀÖ½À´Ï´Ù
·Ê 10.130. ½Ã¸®¾Æ¶óÀÌÁî ÇÑ Çà ¼¼Æ®ÀÇ º¹¿ø
PHP ÀÇ unserialize()
ÇÔ¼ö¸¦ »ç¿ëÇϰí,
¿ÀºêÁ§Æ®ÀÇ ¾Æ¸£¹ÙÀÌÆ® ½ºÆ®¸²À» Æ÷ÇÔÇÑ ¹®ÀÚ¿À» º¹¿øÇÕ´Ï´Ù.
ÀÌ ÇÔ¼ö´Â, ¿ø·¡ÀÇ ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù.
µ¹·ÁÁÖ¾îÁø Çà ¼¼Æ® ¿ÀºêÁ§Æ®´Â, Á¢¼ÓÀÌ Àý´Ü µÇ¾ú´Ù »óÅÂÀÎ °Í¿¡ ÁÖÀÇÇսôÙ. Çà ¼¼Æ® ¿ÀºêÁ§Æ®³ª ±× ³»ºÎÀÇ Çà ¿ÀºêÁ§Æ®, ±×¸®°í ±× ÇÁ·ÓÆÛƼ¸¦ ÀоîµéÀÏ ¼ö ÀÖ½À´Ï´Ù¸¸, ±× °ªÀ» º¯°æÇÒ ¼ö ¾ø½À´Ï´Ù.¶Ç, µ¥ÀÌŸº£À̽º Á¢¼ÓÀ» ÇÊ¿ä·Î ÇÏ´Â ¸Þ¼Òµå (¿¹¸¦ µé¾î Á¾¼Ó Å×ÀÌºí¿¡ ´ëÇÑ Äõ¸® µî) µµ ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù.
<?php
$rowsetDisconnected = unserialize($serializedRowset);
// À̰ÍÀ¸·Î ¿ÀºêÁ§Æ®ÀÇ ÇÁ·ÓÆÛƼ¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù¸¸, Àбâ Àü¿ëÀÔ´Ï´Ù
$row = $rowsetDisconnected->current();
echo $row->bug_description;
![]() |
º¹¿øÇÑ Çà ¼¼Æ®´Â, ¿Ö Àý´Ü µÈ »óÅÂÀԴϱî? |
---|---|
½Ã¸®¾Æ¶óÀÌÁî ÇÑ ¿ÀºêÁ§Æ®´Â, °¡µ¶Çü½ÄÀÇ ¹®ÀÚ¿ÀÌ µË´Ï´Ù. µ¥ÀÌŸº£À̽ºÀÇ ¾îÄ«¿îÆ®³ª ÆÐ½º¿öµå¶ó°í ÇÏ´Â Á¤º¸¸¦ ¾ÏÈ£ÈÇÏÁö ¾Ê°í plaintext¿¡ ½Ã¸®¾Æ¶óÀÌÁî ÇØ º¸Á¸Çϸé, ½ÃÅ¥·¯Æ¼»ó ¹®Á¦°¡ µË´Ï´Ù. ±×·¯ÇÑ µ¥ÀÌÅ͸¦ ¹«¹æºñÀÎ »óÅÂ·Î ÅØ½ºÆ® ÆÄÀÏ¿¡ º¸Á¸Çϰųª ÇÏ°í ½ÍÁö´Â ¾ÊÀ» °ÍÀÔ´Ï´Ù. ¶Ç ¸ÞÀϵ¼ °ø°ÝÀÚ¿¡°Ô µé¿©´Ù ºÁ º¼ ¼ö ÀÖ´Â Àϵµ ÁÁ¾ÆÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. ½Ã¸®¾Æ¶óÀÌÁî µÈ ¿ÀºêÁ§Æ®´Â, ¿Ã¹Ù¸¥ ÀÎÁõ Á¤º¸¸¦ ¸ð¸£´Â ÇÑ µ¥ÀÌŸº£À̽º¿¡ ¾×¼¼½º ÇÒ ¼ö ¾ø½À´Ï´Ù. |
Àý´Ü µÈ Çà ¼¼Æ®ÀÇ Á¢¼ÓÀ» ºÎȰ½ÃŰ·Á¸é ,
setTable()
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.ÀÌ ¸Þ¼Òµå¿¡ÀÇ Àμö·Î¼´Â,
Zend_Db_Table_Abstract
ÇüÅÂÀÇ ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇØ °Ç³×ÁÝ´Ï´Ù.
Å×ÀÌºí ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÏ·Á¸é , µ¥ÀÌŸº£À̽º¿ÍÀÇ Á¢¼ÓÀÌ ÇÊ¿äÇÕ´Ï´Ù.
±× Å×À̺í°ú Çà ¼¼Æ®¸¦ °ü·ÃÁþ´Â °ÍÀ¸·Î, Çà ¼¼Æ®°¡ µ¥ÀÌŸº£À̽º¿¡ ¾×¼¼½º ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
±× ÀÌÈÄ´Â, Çà ¿ÀºêÁ§Æ®ÀÇ °ªÀ» º¯°æÇØ µ¥ÀÌŸº£À̽º¿¡ º¸Á¸ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
·Ê 10.131. »ê µ¥ÀÌÅͷμÀÇ Çà ¼¼Æ®ÀÇ ºÎȰ
<?php
$rowset = unserialize($serializedRowset);
$bugs = new Bugs();
// ÀÌ Çà ¼¼Æ®¸¦ Å×ÀÌºí¿¡ ÀçÁ¢¼ÓÇØ,
// µ¥ÀÌŸº£À̽º¿ÍÀÇ Á¢¼ÓÀ» ºÎȰ½Ãŵ´Ï´Ù
$rowset->setTable($bugs);
$row = $rowset->current();
// À̰ÍÀ¸·Î, ÇàÀÇ ³»¿ëÀ» º¯°æÇØ º¸Á¸ÇÒ ¼ö ÀÖ½À´Ï´Ù
$row->bug_status = 'FIXED';
$row->save();
Çà ¼¼Æ®¸¦ setTable()
±×¸®°í ºÎȰ½Ã۸é,
±× Áß¿¡ Æ÷ÇԵǴ Çà ¿ÀºêÁ§Æ®µµ ¸ðµÎ ºÎȰÇÑ »óŰ¡ µË´Ï´Ù.
Zend_Db_Table_Rowset_Abstract (À»)¸¦ °è½ÂÇÑ »õ·Î¿î ±¸»ó Ŭ·¡½º¸¦ ÀÛ¼ºÇØ,
±×°ÍÀ» ÀÌ¿ëÇØ Çà ¼¼Æ®ÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
µ¶ÀÚÀûÀÎ Çà Ŭ·¡½º¸¦ ÁöÁ¤ÇÏ·Á¸é , Å×À̺í Ŭ·¡½ºÀÇ protected
¸â¹öÀÌ´Ù $_rowsetClass
(À»)¸¦ »ç¿ëÇÏ´ÂÁö,
Å×ÀÌºí ¿ÀºêÁ§Æ®ÀÇ constructor¡¡ ¡¡ ÀÇ ÀμöÀÇ ¹è¿·Î ÁöÁ¤ÇÕ´Ï´Ù.
·Ê 10.132. µ¶ÀÚÀûÀÎ Çà ¼¼Æ® Ŭ·¡½ºÀÇ ÁöÁ¤
<?php
class MyRowset extends Zend_Db_Table_Rowset_Abstract
{
// ...µ¶ÀÚÀûÀΠó¸®
}
// µ¶ÀÚÀûÀÎ Çà ¼¼Æ®¸¦, Å×À̺í Ŭ·¡½ºÀÇ ÀüÀνºÅϽº·Î
// µðÆúÆ®·Î¼ »ç¿ëÇϵµ·Ï(µíÀÌ) ¼³Á¤ÇÕ´Ï´Ù
class Products extends Zend_Db_Table_Abstract
{
protected $_name = 'products';
protected $_rowsetClass = 'MyRowset';
}
// ȤÀº, Å×À̺í Ŭ·¡½ºÀÇ Æ¯Á¤ÀÇ ÀνºÅϽº¿¡¼¸¸
// µ¶ÀÚÀûÀÎ Çà ¼¼Æ® Ŭ·¡½º¸¦ »ç¿ëÇϵµ·Ï(µíÀÌ) ¼³Á¤ÇÕ´Ï´Ù
$bugs = new Bugs(array('rowsetClass' => 'MyRowset'));
ÀϹÝÀûÀ¸·Î´Â, Ç¥ÁØÀÇ ±¸»ó Ŭ·¡½º Zend_Db_Rowset ³ª¿Í ´ëºÎºÐÀÇ °æ¿ì´Â ÃæºÐÇϰÚÁö¿ä.±×·¯³ª, ƯÁ¤ÀÇ Å×ÀÌºí¿¡ °íÀ¯ÀÇ Ã³¸®¸¦ Çà ¼¼Æ®¿¡ Ãß°¡ÇÏ°í ½Í¾îÁö±âµµ ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, Çà ¼¼Æ®³»ÀÇ ¸ðµç ÇàÀÇ ³»¿ëÀÇ Áý°è¿ëÀÇ ¸Þ¼Òµå µîÀÔ´Ï´Ù.
·Ê 10.133. Çà ¼¼Æ® Ŭ·¡½º¿¡ »õ·Î¿î ¸Þ¼Òµå¸¦ Ãß°¡ÇÏ´Â ¿¹
<?php
class MyBugsRowset extends Zend_Db_Table_Rowset_Abstract
{
/**
* ÇöÀçÀÇ Çà ¼¼Æ® ¼Ó¿¡¼,'updated_at' Ä÷³ÀÇ °ªÀÌ
* ÃÖ´ëÀÎ ÇàÀ» ã¾Æ³À´Ï´Ù
*/
public function getLatestUpdatedRow()
{
$max_updated_at = 0;
$latestRow = null;
foreach ($this as $row) {
if ($row->updated_at > $max_updated_at) {
$latestRow = $row;
}
}
return $latestRow;
}
}
class Bugs extends Zend_Db_Table_Abstract
{
protected $_name = 'bugs';
protected $_rowsetClass = 'MyBugsRowset';
}