diff options
Diffstat (limited to 'createDefaultMapper')
| -rw-r--r-- | createDefaultMapper/mapper.sh | 35 | ||||
| -rw-r--r-- | createDefaultMapper/mappertemplate | 75 |
2 files changed, 110 insertions, 0 deletions
diff --git a/createDefaultMapper/mapper.sh b/createDefaultMapper/mapper.sh new file mode 100644 index 0000000..6d98bc3 --- /dev/null +++ b/createDefaultMapper/mapper.sh @@ -0,0 +1,35 @@ +#!/bin/sh +id=$(grep -c "getID" $1) +if [ $id -eq 0 ]; then +echo "$1 enthält keinen Primärschlüssel" +exit +fi + +modelname=$(basename $1 .php) +modelmapper=${modelname}Mapper +modelmapperfile=$(dirname $1)/${modelmapper}.php +modelvar=$(echo "$modelname" | tr -s '[A-Z]' '[a-z]') +getID="get${modelname}ID" +setID="set${modelname}ID" +cp mappertemplate ${modelmapperfile} + +savedata=$(grep "protected" $1 | awk -v SQ="\'" -F '_|;' '{ + printf "," SQ $2 SQ "=> $MVAR->get"; + split($2,a,""); a[1]=toupper(a[1]); + for(i=1; i<=length($2); i++){printf a[i]}; + printf "() "}') + +find=$(grep "protected" $1 | awk -F '_|;' '{ + printf "->set"; split($2,a,""); + a[1]=toupper(a[1]); + for(i=1; i<=length($2); i++){printf a[i]}; + printf "($row->%s)", $2}') + +sed -i "s/SAVEDATA/${savedata}/g" ${modelmapperfile} +sed -i "s/FIND/${find}/g" ${modelmapperfile} +sed -i "s/${getID}/getID/g" ${modelmapperfile} +sed -i "s/${setID}/setID/g" ${modelmapperfile} +sed -i "s/array(,/array(/g" ${modelmapperfile} +sed -i "s/MODEL/${modelname}/g" ${modelmapperfile} +sed -i "s/MVAR/${modelvar}/g" ${modelmapperfile} +sed -i "s/MAPPER/${modelmapper}/g" ${modelmapperfile} diff --git a/createDefaultMapper/mappertemplate b/createDefaultMapper/mappertemplate new file mode 100644 index 0000000..f994184 --- /dev/null +++ b/createDefaultMapper/mappertemplate @@ -0,0 +1,75 @@ +<?php + +class Application_Model_MAPPER +{ + + protected $_dbTable; + + public function setDbTable($dbTable) + { + if (is_string($dbTable)) { + $dbTable = new $dbTable(); + } + + if (!$dbTable instanceof Zend_Db_Table_Abstract) { + throw new Exception('Invalid table data gateway provided'); + } + + $this->_dbTable = $dbTable; + + return $this; + } + + public function getDbTable() + { + if (null === $this->_dbTable) { + $this->setDbTable('Application_Model_DbTable_Person'); + } + + return $this->_dbTable; + } + + public function save(Application_Model_MODEL $MVAR) + { + + $data = array(SAVEDATA); + + if (null === ($id = $MVAR->getID()) ) { + unset($data['id']); + $this->getDbTable()->insert($data); + } else { + $this->getDbTable()->update($data, array('id = ?' => $id)); + } + } + + public function find($id, Application_Model_MODEL $MVAR) + { + $result = $this->getDbTable()->find($id); + if (0 == count($result)) { + return; + } + + $row = $result->current(); + + $MVARFIND; + } + + public function fetchAll() + { + $resultSet = $this->getDbTable()->fetchAll(); + $entries = array(); + foreach ($resultSet as $row) { + $entry = new Application_Model_MODEL(); + + $entryFIND; + + $entries[] = $entry; + } + + return $entries; + } + + + +} + |
