Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- *Ingenieria reversa de base de datos
- *para crear un modelo de CodeIgniter sin esfuerzo.
- *Uso : php script.php <dbuser> <dbpass> <dbname> <table>
- */
- if(!(isset($_SERVER["argv"][1]) && isset($_SERVER["argv"][2]) && isset($_SERVER["argv"][3]) &&isset($_SERVER["argv"][4]))){
- echo "\nUsage :".basename($_SERVER["argv"][0]). " <dbuser> <dbpass> <dbname> <table>\n\n";
- exit(1);
- }
- $dbuser = $_SERVER["argv"][1];
- $dbpass = $_SERVER["argv"][2];
- $dbname = $_SERVER["argv"][3];
- $table = $_SERVER["argv"][4];
- $link = @mysql_connect("localhost",$dbuser,$dbpass);
- if(!$link){
- echo "Couldnt connect to DB \"$dbname\"\n";
- exit (1);
- }
- mysql_select_db($dbname);
- $sql = "SELECT COLUMN_NAME FROM information_schema.columns WHERE TABLE_SCHEMA='$dbname' AND TABLE_NAME='$table'";
- $result = mysql_query($sql);
- if(!$result){
- echo "Failed fetching \"$table\" columns\n";
- exit(1);
- }
- while($row = mysql_fetch_array($result,TRUE)){
- $columns[] = $row["COLUMN_NAME"];
- }
- $code = "<?php\n\tclass ".ucwords($table)." extends CI_Model {\n\n";
- foreach($columns as $column){
- $code .= "\t\tvar\t$column\t=\tNULL\n";
- }
- $code .= "\n\t\tvar\t".'$tableName'."\t=\t'".$table."';\n\n";
- $code.="\n\n\t\tpublic function __construct(){\n\n\t\t\tparent::__construct();\n\n\t\t}\n\n";
- foreach($columns as $column){
- $colName = implode('',array_map("ucwords",explode('_',$column)));
- $code .= "\t\tpublic function set$colName".'($value=NULL)'." {\n";
- $code .= "\t\t\t".'$this->'.$column."\t=\t".'$value'.";\n";
- $code .= "\t\t}\n\n";
- $code .= "\t\tpublic function get$colName".'($value=NULL)'." {\n";
- $code .= "\t\t\t".'return $this->'.$column.";\n";
- $code .= "\t\t}\n\n";
- }
- $code.= "\t\tpublic function get(".'$last=0'.") {\n\n";
- $code.= "\t\t\t".'if($last > 0){'."\n";
- $code.= "\t\t\t\t".'return $this->db->get($this->_tableName,$last);'."\n";
- $code.= "\t\t\t".'}'."\n\n";
- $code.= "\t\t\t".'return $this->db->get($this->_tableName);'."\n";
- $code.= "\t\t}\n\n";
- $code.= "\t\tpublic function insert() {\n";
- $code.= "\t\t\t".'$this->db->insert($this->_tableName, $this);'."\n";
- $code.= "\t\t}\n\n";
- $code.= "\t\tpublic function update() {\n";
- $code.= "\t\t\t".'$this->db->update($this->_tableName,$this,array('."'id'=>".'$this->id));'."\n";
- $code.= "\t\t}\n\n";
- $code.="\t}\n";
- $code.="?>";
- $table = ucwords($table);
- echo "Saved to $table.model.php!\n";
- file_put_contents("$table.model.php",$code);
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement