Example #1
0
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');
    }
}
Example #2
0
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');
    }
}
Example #3
0
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');
    }
}