function getnerateDAOObjects($ret) { for ($i = 0; $i < count($ret); $i++) { if (!doesTableContainPK($ret[$i])) { continue; } $tableName = $ret[$i][0]; $clazzName = getClazzName($tableName) . 'MySql'; $tab = getFields($tableName); $parameterSetter = "\n"; $insertFields = ""; $updateFields = ""; $questionMarks = ""; $readRow = "\n"; $pk = ''; $pks = array(); $queryByField = ''; $deleteByField = ''; $pk_type = ''; for ($j = 0; $j < count($tab); $j++) { if ($tab[$j][3] == 'PRI' || $tab[$j][0] == 'id') { $pk = $tab[$j][0]; $c = count($pks); $pks[$c] = $tab[$j][0]; $pk_type = $tab[$j][1]; } else { $insertFields .= $tab[$j][0] . ", "; $updateFields .= $tab[$j][0] . " = ?, "; $questionMarks .= "?, "; if (isColumnTypeNumber($tab[$j][1])) { $parameterSetter .= "\t\t\$sqlQuery->setNumber(\$" . getVarName($tableName) . "->" . getVarNameWithS($tab[$j][0]) . ");\n"; } else { $parameterSetter .= "\t\t\$sqlQuery->set(\$" . getVarName($tableName) . "->" . getVarNameWithS($tab[$j][0]) . ");\n"; } $parameterSetter2 = ''; if (isColumnTypeNumber($tab[$j][1])) { $parameterSetter2 .= "Number"; } $queryByField .= "\tpublic function queryBy" . getClazzName($tab[$j][0]) . "(\$value){\r\n\t\t\$sql = 'SELECT * FROM " . $tableName . " WHERE is_deleted = FALSE AND " . $tab[$j][0] . " = ?';\r\n\t\t\$sqlQuery = new SqlQuery(\$sql);\r\n\t\t\$sqlQuery->set" . $parameterSetter2 . "(\$value);\r\n\t\treturn \$this->getList(\$sqlQuery);\r\n\t}\n\n"; $deleteByField .= "\tpublic function deleteBy" . getClazzName($tab[$j][0]) . "(\$value){\r\n\t\t\$sql = 'UPDATE " . $tableName . " SET is_deleted = TRUE, delete_epoch=unix_timestamp(now()) WHERE " . $tab[$j][0] . " = ? AND is_deleted = FALSE';\r\n\t\t\$sqlQuery = new SqlQuery(\$sql);\r\n\t\t\$sqlQuery->set" . $parameterSetter2 . "(\$value);\r\n\t\treturn \$this->executeUpdate(\$sqlQuery);\r\n\t}\n\n"; } $readRow .= "\t\t\$" . getVarName($tableName) . "->" . getVarNameWithS($tab[$j][0]) . " = \$row['" . $tab[$j][0] . "'];\n"; } if ($pk == '') { continue; } if (count($pks) == 1) { $template = new Template('templates/DAO.tpl'); echo '$pk_type ' . $pk_type . '<br/>' . "\n"; if (isColumnTypeNumber($pk_type)) { $template->set('pk_number', 'Number'); } else { $template->set('pk_number', ''); } } else { throw new Exception("Cannot have more than one PK"); } $template->set('dao_clazz_name', $clazzName); $template->set('domain_clazz_name', getDTOName($tableName)); $template->set('idao_clazz_name', getClazzName($tableName)); $template->set('table_name', $tableName); $template->set('var_name', getVarName($tableName)); $insertFields = substr($insertFields, 0, strlen($insertFields) - 2); $updateFields = substr($updateFields, 0, strlen($updateFields) - 2); $questionMarks = substr($questionMarks, 0, strlen($questionMarks) - 2); $template->set('pk', $pk); $s = ''; $s2 = ''; $s3 = ''; $s4 = ''; $insertFields2 = $insertFields; $questionMarks2 = $questionMarks; for ($z = 0; $z < count($pks); $z++) { $questionMarks2 .= ', ?'; if ($z > 0) { $s .= ', '; $s2 .= ' AND '; $s3 .= "\t\t"; } $insertFields2 .= ', ' . $pks[$z]; $s .= '$' . getVarNameWithS($pks[$z]); $s2 .= $pks[$z] . ' = ? '; $s3 .= '$sqlQuery->setNumber($' . getVarNameWithS($pks[$z]) . ');'; $s3 .= "\n"; $s4 .= "\n\t\t"; $s4 .= '$sqlQuery->setNumber($' . getVarName($tableName) . '->' . getVarNameWithS($pks[$z]) . ');'; $s4 .= "\n"; } if ($s[0] == ',') { $s = substr($s, 1); } if ($questionMarks2[0] == ',') { $questionMarks2 = substr($questionMarks2, 1); } if ($insertFields2[0] == ',') { $insertFields2 = substr($insertFields2, 1); } $template->set('question_marks2', $questionMarks2); $template->set('insert_fields2', $insertFields2); $template->set('pk_set_update', $s4); $template->set('pk_set', $s3); $template->set('pk_where', $s2); $template->set('pks', $s); $template->set('pk_php', getVarNameWithS($pk)); $template->set('insert_fields', $insertFields); $template->set('read_row', $readRow); $template->set('update_fields', $updateFields); $template->set('question_marks', $questionMarks); $template->set('parameter_setter', $parameterSetter); $template->set('read_row', $readRow); $template->set('date', date("Y-m-d H:i")); $template->set('queryByFieldFunctions', $queryByField); $template->set('deleteByFieldFunctions', $deleteByField); $template->write('generated/class/mysql/' . $clazzName . 'DAO.class.php'); } }
function getnerateIDAOObjects($ret) { for ($i = 0; $i < count($ret); $i++) { if (!doesTableContainPK($ret[$i])) { continue; } $tableName = $ret[$i][0]; $clazzName = getClazzName($tableName); $tab = getFields($tableName); $parameterSetter = "\n"; $insertFields = ""; $updateFields = ""; $questionMarks = ""; $readRow = "\n"; $pk = ''; $pks = array(); $queryByField = ''; $deleteByField = ''; for ($j = 0; $j < count($tab); $j++) { if ($tab[$j][3] == 'PRI') { $pk = $tab[$j][0]; $c = count($pks); $pks[$c] = $tab[$j][0]; } else { $insertFields .= $tab[$j][0] . ", "; $updateFields .= $tab[$j][0] . " = ?, "; $questionMarks .= "?, "; if (isColumnTypeNumber($tab[$j][1])) { $parameterSetter .= "\t\t\$sqlQuery->setNumber(\$" . getVarName($tableName) . "->get" . camelize(getVarNameWithS($tab[$j][0])) . "());\n"; } else { $parameterSetter .= "\t\t" . '$sqlQuery->set($' . getVarName($tab[$j][0]) . ');' . "\n"; } $queryByField .= "\tpublic function queryBy" . getClazzName($tab[$j][0]) . "(\$value);\n\n"; $deleteByField .= "\tpublic function deleteBy" . getClazzName($tab[$j][0]) . "(\$value);\n\n"; } $readRow .= "\t\t\$" . getVarName($tableName) . "->" . getVarNameWithS($tab[$j][0]) . " = \$row['" . $tab[$j][0] . "'];\n"; } if ($pk == '') { continue; } if (count($pks) == 1) { $template = new Template('templates/IDAO.tpl'); } else { $template = new Template('templates/IDAO_with_complex_pk.tpl'); } $template->set('dao_clazz_name', $clazzName); $template->set('domain_clazz_name', getDTOName($tableName)); $template->set('dao_clazz_name_singular', plural2singular($clazzName)); $template->set('table_name', $tableName); $template->set('var_name', getVarName($tableName)); $s = ''; $s2 = ''; $s3 = ''; $s4 = ''; $insertFields2 = $insertFields; $questionMarks2 = $questionMarks; for ($z = 0; $z < count($pks); $z++) { $questionMarks2 .= ', ?'; if ($z > 0) { $s .= ', '; $s2 .= ' AND '; $s3 .= "\t\t"; } $insertFields2 .= ', ' . getVarNameWithS($pks[$z]); $s .= '$' . getVarNameWithS($pks[$z]); $s2 .= getVarNameWithS($pks[$z]) . ' = ? '; $s3 .= '$sqlQuery->setNumber(' . getVarName($pks[$z]) . ');'; $s3 .= "\n"; $s4 .= "\n\t\t"; $s4 .= '$sqlQuery->setNumber($' . getVarName($tableName) . '->' . getVarNameWithS($pks[$z]) . ');'; $s4 .= "\n"; } $template->set('question_marks2', $questionMarks2); $template->set('insert_fields2', $insertFields2); $template->set('pk_set_update', $s4); $template->set('pk_set', $s3); $template->set('pk_where', $s2); $template->set('pks', $s); $insertFields = substr($insertFields, 0, strlen($insertFields) - 2); $updateFields = substr($updateFields, 0, strlen($updateFields) - 2); $questionMarks = substr($questionMarks, 0, strlen($questionMarks) - 2); $template->set('pk', $pk); $template->set('insert_fields', $insertFields); $template->set('read_row', $readRow); $template->set('update_fields', $updateFields); $template->set('question_marks', $questionMarks); $template->set('parameter_setter', $parameterSetter); $template->set('read_row', $readRow); $template->set('date', date("Y-m-d H:i")); $template->set('queryByFieldFunctions', $queryByField); $template->set('deleteByFieldFunctions', $deleteByField); $template->write('generated/class/dao/' . $clazzName . 'DAO.class.php'); } }
function modeloAOObjects($ret) { for ($i = 0; $i < count($ret); $i++) { if (!doesTableContainPK($ret[$i])) { continue; } $tableName = $ret[$i][0]; $clazzName = getClazzName($tableName) . 'MySql'; $tab = getFields($tableName); $nullReplacer = "\n"; $parameterSetter = "\n"; $insertFields = ""; $updateFields = ""; $questionMarks = ""; $readRow = "\n"; $pk = ''; $pks = array(); $queryByField = ''; $deleteByField = ''; $pk_type = ''; //RJG - Default for no primary key the first column - so that views and tables without a primary key appear //Assume the first field is the primary key $primary_found = false; for ($j = 0; $j < count($tab); $j++) { if ($tab[$j][3] == 'PRI') { $primary_found = true; } } if (!$primary_found) { $tab[0][3] = 'PRI'; } //RJG End for ($j = 0; $j < count($tab); $j++) { if ($tab[$j][3] == 'PRI') { $pk = $tab[$j][0]; $c = count($pks); $pks[$c] = $tab[$j][0]; $pk_type = $tab[$j][1]; } else { $insertFields .= $tab[$j][0] . ", "; $updateFields .= $tab[$j][0] . " = ?, "; $questionMarks .= "?, "; //RJG - to handle insert and update with nulls $nullReplacer .= "\t\t\$qpos = strpos(\$sql, '?', \$qpos + 1);\n\t\tif ((!isset(\$" . getVarName($tableName) . "->" . getVarNameWithS($tab[$j][0]) . ")) || is_null(\$" . getVarName($tableName) . "->" . getVarNameWithS($tab[$j][0]) . "))\n\t\t\t\$sql = substr_replace(\$sql, 'NULL', \$qpos, 1);\n"; if (isColumnTypeNumber($tab[$j][1])) { $parameterSetter .= "\t\tif ((isset(\$" . getVarName($tableName) . "->" . getVarNameWithS($tab[$j][0]) . ")) && (!is_null(\$" . getVarName($tableName) . "->" . getVarNameWithS($tab[$j][0]) . ")))\n\t\t\t\$sqlQuery->setNumber(\$" . getVarName($tableName) . "->" . getVarNameWithS($tab[$j][0]) . ");\n"; } else { $parameterSetter .= "\t\tif ((isset(\$" . getVarName($tableName) . "->" . getVarNameWithS($tab[$j][0]) . ")) && (!is_null(\$" . getVarName($tableName) . "->" . getVarNameWithS($tab[$j][0]) . ")))\n\t\t\t\$sqlQuery->set(\$" . getVarName($tableName) . "->" . getVarNameWithS($tab[$j][0]) . ");\n"; } //RJG End $parameterSetter2 = ''; if (isColumnTypeNumber($tab[$j][1])) { $parameterSetter2 .= "Number"; } $queryByField .= "\tpublic function queryBy" . getClazzName($tab[$j][0]) . "(\$value){\r\n\t\t\$sql = 'SELECT * FROM " . $tableName . " WHERE " . $tab[$j][0] . " = ?';\r\n\t\t\$sqlQuery = new SqlQuery(\$sql);\r\n\t\t\$sqlQuery->set" . $parameterSetter2 . "(\$value);\r\n\t\treturn \$this->getList(\$sqlQuery);\r\n\t}\n\n"; $deleteByField .= "\tpublic function deleteBy" . getClazzName($tab[$j][0]) . "(\$value){\r\n\t\t\$sql = 'DELETE FROM " . $tableName . " WHERE " . $tab[$j][0] . " = ?';\r\n\t\t\$sqlQuery = new SqlQuery(\$sql);\r\n\t\t\$sqlQuery->set" . $parameterSetter2 . "(\$value);\r\n\t\treturn \$this->executeUpdate(\$sqlQuery);\r\n\t}\n\n"; } $readRow .= "\t\t\$" . getVarName($tableName) . "->" . getVarNameWithS($tab[$j][0]) . " = \$row['" . $tab[$j][0] . "'];\n"; } if ($pk == '') { continue; } if (count($pks) == 1) { $template = new Template('templates/DAO.tpl'); echo '$pk_type ' . $pk_type . '<br/>'; if (isColumnTypeNumber($pk_type)) { $template->set('pk_number', 'Number'); } else { $template->set('pk_number', ''); } } else { $template = new Template('templates/DAO_with_complex_pk.tpl'); } $template->set('dao_clazz_name', $clazzName); $template->set('domain_clazz_name', getDTOName($tableName)); $template->set('idao_clazz_name', getClazzName($tableName)); $template->set('table_name', $tableName); $template->set('var_name', getVarName($tableName)); $insertFields = substr($insertFields, 0, strlen($insertFields) - 2); $updateFields = substr($updateFields, 0, strlen($updateFields) - 2); $questionMarks = substr($questionMarks, 0, strlen($questionMarks) - 2); $template->set('pk', $pk); $s = ''; $s2 = ''; $s3 = ''; $s4 = ''; $insertFields2 = $insertFields; $questionMarks2 = $questionMarks; for ($z = 0; $z < count($pks); $z++) { $questionMarks2 .= ', ?'; if ($z > 0) { $s .= ', '; $s2 .= ' AND '; $s3 .= "\t\t"; } $insertFields2 .= ', ' . $pks[$z]; $s .= '$' . getVarNameWithS($pks[$z]); $s2 .= $pks[$z] . ' = ? '; $s3 .= '$sqlQuery->setNumber($' . getVarNameWithS($pks[$z]) . ');'; $s3 .= "\n"; $s4 .= "\n\t\t"; $s4 .= '$sqlQuery->setNumber($' . getVarName($tableName) . '->' . getVarNameWithS($pks[$z]) . ');'; $s4 .= "\n"; } if ($s[0] == ',') { $s = substr($s, 1); } if ($questionMarks2[0] == ',') { $questionMarks2 = substr($questionMarks2, 1); } if ($insertFields2[0] == ',') { $insertFields2 = substr($insertFields2, 1); } $template->set('question_marks2', $questionMarks2); $template->set('insert_fields2', $insertFields2); $template->set('pk_set_update', $s4); $template->set('pk_set', $s3); $template->set('pk_where', $s2); $template->set('pks', $s); $template->set('pk_php', getVarNameWithS($pk)); $template->set('insert_fields', $insertFields); $template->set('read_row', $readRow); $template->set('update_fields', $updateFields); $template->set('question_marks', $questionMarks); $template->set('null_replacer', $nullReplacer); $template->set('parameter_setter', $parameterSetter); $template->set('read_row', $readRow); $template->set('date', date("Y-m-d H:i")); $template->set('queryByFieldFunctions', $queryByField); $template->set('deleteByFieldFunctions', $deleteByField); $template->write('modelo/class/mysql/' . $clazzName . 'DAO.class.php'); } }