public function create(Skt_Core_Request $req) { $req->getParam('repository_app', 'ibe-apps'); $this->_directory->create($this->_dir_app); foreach ($this->_configure->paths as $path) { $this->_directory->create($this->_dir_app . $path); } $vars = $req->getParamsWithDefaults($this->_configure->index); $this->_file->include_tpl("index", $this->_dir_app, $vars); $this->_file->include_tpl("inc_configure", $this->_dir_app . "_modules"); $this->_file->include_tpl("inc_views", $this->_dir_app . "_modules"); }
public function create(Skt_Core_Request $req) { $this->_directory->create($this->_dir_app . $this->_configure->base); $vars = $req->getParamsWithDefaults($this->_configure->database); $host = $vars['host']; $user = $vars['user']; $pass = $vars['pass']; $schema = $vars['schm']; @($conn = mysql_connect($host, $user, $pass)); if ($conn) { $sch = mysql_select_db($schema); if (!$sch) { Skt_Core_Prompt::print_('not select schema', Skt_Core_Prompt::ERROR); return; } $show_tables = 'SHOW TABLES'; $table = array(); $result = mysql_query($show_tables); if ($result) { while (@($row = mysql_fetch_array($result))) { //Tabelas $table[$row[0]] = array(); Skt_Core_Prompt::print_("lendo tabela " . $row[0]); //Configuracao das colunas $result_show_table = mysql_query('DESC ' . $row[0]); while ($result_show_table && ($row_tbl = mysql_fetch_array($result_show_table))) { $table[$row[0]]['field'][$row_tbl['Field']] = $this->getType($row_tbl['Type']); } //Configurando chaves $result_show_keys = mysql_query('SHOW KEYS FROM ' . $row[0]); while ($result_show_keys && ($row_tbl = mysql_fetch_array($result_show_keys))) { if ($row_tbl['Key_name'] == 'PRIMARY') { $table[$row[0]]['primary_key'][] = $row_tbl['Column_name']; } else { $foreign_table = explode('_', $row_tbl['Column_name']); $foreign_table[sizeof($foreign_table) - 1] = ""; $table[$row[0]]['foreign_key'][$row_tbl['Column_name']] = implode("", array_map("ucfirst", array_map("strtolower", $foreign_table))); // ucfirst(strtolower(implode('',$foreign_table))); } } } } else { Skt_Core_Prompt::print_(mysql_error(), Skt_Core_Prompt::ERROR); } foreach ($table as $tbl_name => $tbl_confs) { $class = explode('_', $tbl_name); $name = ''; foreach ($class as $n) { $name .= ucfirst(strtolower($n)); } /// Comentario inicial $file_php = "<?php\n\n"; $file_php .= "/**\n"; $file_php .= " * Mapeamento Objeto Relacional \n *\n"; //Configurando os metodos campos if (isset($tbl_confs['field'])) { foreach ($tbl_confs['field'] as $f_name => $f_type) { $file_php .= " * @method " . ucfirst(strtolower($name)) . "Map set" . ucfirst(strtolower($f_name)) . "(\$value) metodo set\n"; $file_php .= " * @method " . ucfirst(strtolower($name)) . "Map get" . ucfirst(strtolower($f_name)) . "() metodo get\n"; } } $file_php .= " * @date " . date('d/m/Y') . "\n"; $file_php .= " * @autor Renan Henrique Abreu<*****@*****.**> SKT\n"; $file_php .= " */\n"; /// Criacao da classe $file_php .= "class " . $name . "Table extends Ibe_Map{\n\n"; $file_php .= "\tprotected function configure(){\n"; $file_php .= "\t\t\$this->table_name = '" . $schema . "." . $tbl_name . "';\n"; $file_php .= "\t\t\$this->primary_key = '" . $tbl_confs['primary_key'][0] . "';\n"; /// Configurando chave estrangeira if (isset($tbl_confs['foreign_key'])) { $file_php .= "\t\t\$this->foreign_key = array("; $fks = array(); foreach ($tbl_confs['foreign_key'] as $fk_name => $fk_table) { $fks[] = "\n\t\t\t'" . $fk_name . "'=>'" . $fk_table . "'"; } $file_php .= implode(',', $fks); $file_php .= "\n\t\t);\n"; } //Configurando campos if (isset($tbl_confs['field'])) { $file_php .= "\t\t\$this->columns_conf = array("; $f = array(); foreach ($tbl_confs['field'] as $f_name => $f_type) { $f[] = "\n\t\t\t'" . $f_name . "'=>'" . $f_type . "'"; } $file_php .= implode(',', $f); $file_php .= "\n\t\t);\n"; } //Fechando funcao configure $file_php .= "\t}\n\n\n"; //Fechando classe $file_php .= '}'; //Criando o arquivo $dir = $this->_dir_app . "_maps" . DS . "tables" . DS; if (is_dir($dir)) { file_put_contents($dir . 'tbl_' . strtolower($name) . '.php', $file_php); $map = "_maps" . DS . 'inc_' . strtolower($name) . '.php'; if (!file_exists($this->_dir_app . $map)) { $include = "_maps" . DS . "tables" . DS; $file_php = "<?php\n\n"; $file_php .= "include_once('" . $include . 'tbl_' . strtolower($name) . '.php' . "');\n\n\n"; $file_php .= "/**\n"; $file_php .= " * Classe de regras de negocio \n *\n"; $file_php .= " * @date " . date('d/m/Y') . "\n"; $file_php .= " * @autor Renan Henrique Abreu<*****@*****.**> SKT\n"; $file_php .= " */\n"; $file_php .= "class " . $name . "Map extends " . $name . "Table {\n\n\n}"; file_put_contents($this->_dir_app . $map, $file_php); } Skt_Core_Prompt::print_("map " . ucfirst(strtolower($name)) . " criado com sucesso"); } else { Skt_Core_Prompt::print_("application not exists", Skt_Core_Prompt::ERROR); } } mysql_close(); } else { Skt_Core_Prompt::print_("not permition", Skt_Core_Prompt::ERROR); } }