5 $objDataObjectPool = new DataObjectPool('Result-Handler');
7 #################################
8 ### handler for: SINGLE_VALUE ###
9 #################################
11 $cloSingleValueHandler = function(\DDDBL\Queue $objQueue) {
13 $arrResult = $objQueue->getState()->get('PDOStatement')->fetch();
14 $objQueue->getState()->update(array('result' => (empty($arrResult)) ? null : reset($arrResult)));
18 $objDataObjectPool->add('SINGLE_VALUE', array('HANDLER' => $cloSingleValueHandler));
20 ###########################
21 ### handler for: SINGLE ###
22 ###########################
24 $cloSingleHandler = function(\DDDBL\Queue $objQueue) {
26 $arrResult = $objQueue->getState()->get('PDOStatement')->fetch();
27 $objQueue->getState()->update(array('result' => (empty($arrResult)) ? null : $arrResult));
31 $objDataObjectPool->add('SINGLE', array('HANDLER' => $cloSingleHandler));
33 ##########################
34 ### handler for: MULTI ###
35 ##########################
37 $cloMultiHandler = function(\DDDBL\Queue $objQueue) {
39 $arrResult = $objQueue->getState()->get('PDOStatement')->fetchAll();
40 $objQueue->getState()->update(array('result' => (empty($arrResult)) ? array() : $arrResult));
44 $objDataObjectPool->add('MULTI', array('HANDLER' => $cloMultiHandler));
46 #########################
47 ### handler for: LIST ###
48 #########################
50 $cloListHandler = function(\DDDBL\Queue $objQueue) {
52 $objResultCursor = $objQueue->getState()->get('PDOStatement');
56 while($arrRow = $objResultCursor->fetch())
57 array_push($arrResult, current($arrRow));
59 $objQueue->getState()->update(array('result' => $arrResult));
63 $objDataObjectPool->add('LIST', array('HANDLER' => $cloListHandler));
65 #############################
66 ### handler for: GROUP_BY ###
67 #############################
69 $cloGroupedByHandler = function(\DDDBL\Queue $objQueue, $strGroupColumn) {
71 $objResultCursor = $objQueue->getState()->get('PDOStatement');
75 while($arrRow = $objResultCursor->fetch()) {
77 if(!isset($arrRow[$strGroupColumn]))
78 throw new \Exception ("could not group result by non-existing column: $strGroupColumn");
80 $arrResult[$arrRow[$strGroupColumn]][] = $arrRow;
84 $objQueue->getState()->update(array('result' => $arrResult));
88 $objDataObjectPool->add('GROUP_BY', array('HANDLER' => $cloGroupedByHandler));
90 #############################
91 ### handler for: NOT_NULL ###
92 #############################
94 $cloNotNullHandler = function(\DDDBL\Queue $objQueue) {
96 $arrResult = $objQueue->getState()->get('PDOStatement')->fetch();
98 $objQueue->getState()->update(array('result' => (empty($arrResult)) ? false : true));
102 $objDataObjectPool->add('NOT_NULL', array('HANDLER' => $cloNotNullHandler));