generate a simple class for all fields of a table .

来源:互联网 发布:最好的手电筒软件 编辑:程序博客网 时间:2024/05/16 19:03
generate a simple class for all fields of a table .
souce code:
<?php
class genpo
{
    private $tablename;
    private $fields;
    public function __construct($tablename, $fields){
        $this->tablename = $tablename;
        $this->fields = $fields;
    }

    public function genpo()
    {
        $ret="class User_Address{";
        for($i=0;$i<count($this->fields);$i++)
        {
            $ret.="/n private $".$this->fields[$i].";";
        }

        for($i=0;$i<count($this->fields);$i++)
        {

            $ret.="/n public function set_".$this->fields[$i]."(/$".$this->fields[$i].")/n".
            "{/n/$this->".$this->fields[$i]."=/$".$this->fields[$i].";/n}";
            $ret.="/n public function get_".$this->fields[$i]."()/n{/n return /$".$this->fields[$i].";/n}";
        }

        $ret.="/n}";
        return $ret;
    }

};
$tablename="User_Address";

$fields = array("User_Address_ID",
"User_ID",
"User_Address_Tag",
"Salutation",
"First_Name",
"Last_Name",
"Company_Name",
"Title_Name",
"Address1",
"Address2",
"City",
"ProvState",
"Postal",
"Country_Code",
"User_Address_Status",
"Timestamp");

$t = new genpo($tablename,$fields);
echo "<textarea rows=100 cols=100> ";
echo $t->genpo() ;
echo "/n/n</textarea>";



?>

the result:
class User_Address{
 private $User_Address_ID;
 private $User_ID;
 private $User_Address_Tag;
 private $Salutation;
 private $First_Name;
 private $Last_Name;
 private $Company_Name;
 private $Title_Name;
 private $Address1;
 private $Address2;
 private $City;
 private $ProvState;
 private $Postal;
 private $Country_Code;
 private $User_Address_Status;
 private $Timestamp;
 public function set_User_Address_ID($User_Address_ID)
{
$this->User_Address_ID=$User_Address_ID;
}
 public function get_User_Address_ID()
{
 return $User_Address_ID;
}
 public function set_User_ID($User_ID)
{
$this->User_ID=$User_ID;
}
 public function get_User_ID()
{
 return $User_ID;
}
 public function set_User_Address_Tag($User_Address_Tag)
{
$this->User_Address_Tag=$User_Address_Tag;
}
 public function get_User_Address_Tag()
{
 return $User_Address_Tag;
}
 public function set_Salutation($Salutation)
{
$this->Salutation=$Salutation;
}
 public function get_Salutation()
{
 return $Salutation;
}
 public function set_First_Name($First_Name)
{
$this->First_Name=$First_Name;
}
 public function get_First_Name()
{
 return $First_Name;
}
 public function set_Last_Name($Last_Name)
{
$this->Last_Name=$Last_Name;
}
 public function get_Last_Name()
{
 return $Last_Name;
}
 public function set_Company_Name($Company_Name)
{
$this->Company_Name=$Company_Name;
}
 public function get_Company_Name()
{
 return $Company_Name;
}
 public function set_Title_Name($Title_Name)
{
$this->Title_Name=$Title_Name;
}
 public function get_Title_Name()
{
 return $Title_Name;
}
 public function set_Address1($Address1)
{
$this->Address1=$Address1;
}
 public function get_Address1()
{
 return $Address1;
}
 public function set_Address2($Address2)
{
$this->Address2=$Address2;
}
 public function get_Address2()
{
 return $Address2;
}
 public function set_City($City)
{
$this->City=$City;
}
 public function get_City()
{
 return $City;
}
 public function set_ProvState($ProvState)
{
$this->ProvState=$ProvState;
}
 public function get_ProvState()
{
 return $ProvState;
}
 public function set_Postal($Postal)
{
$this->Postal=$Postal;
}
 public function get_Postal()
{
 return $Postal;
}
 public function set_Country_Code($Country_Code)
{
$this->Country_Code=$Country_Code;
}
 public function get_Country_Code()
{
 return $Country_Code;
}
 public function set_User_Address_Status($User_Address_Status)
{
$this->User_Address_Status=$User_Address_Status;
}
 public function get_User_Address_Status()
{
 return $User_Address_Status;
}
 public function set_Timestamp($Timestamp)
{
$this->Timestamp=$Timestamp;
}
 public function get_Timestamp()
{
 return $Timestamp;
}
}

version 2.0
<?php
class genpo
{
    private $tablename;
    private $fields;
    public function __construct($tablename, $fields){
        $this->tablename = $tablename;
        $this->fields = $fields;
    }

    public function genpo()
    {
        $ret="class ".$this->tablename."{";
        for($i=0;$i<count($this->fields);$i++)
        {
            $ret.="/n private $".$this->fields[$i].";";
        }
        $ret.="/n/*";
        for($i=0;$i<count($this->fields);$i++)
        {
            $ret.="/n /$var->set_".$this->fields[$i]."(/$".$this->fields[$i].");";
        }
        $ret.="/n*//n";

        for($i=0;$i<count($this->fields);$i++)
        {

            $ret.="/n public function set_".$this->fields[$i]."(/$".$this->fields[$i].")/n".
            "{/n/$this->".$this->fields[$i]."=/$".$this->fields[$i].";/n}";
            $ret.="/n public function get_".$this->fields[$i]."()/n{/n return /$this->".$this->fields[$i].";/n}";
        }
        //just let fields[0] to be primary key
        $ret.="/n public function db_save(){/n".
        "if(is_null(/$this->".$this->fields[0].") || /$this->".$this->fields[0]."==/"/"){/n".
        "return /$this->db_insert();
        }else{
            return /$this->db_update();
        }
    }/n";

        $ret.="public function db_insert(){/n
             global /$applicationDb;/n
        /$mDb = /$applicationDb->getMaster();/n
        //Validate the supplied data before insert
    ";

        $infields="";
        $invalues="";
        $valuesshow="";
        for($i=0;$i<count($this->fields);$i++)
        {
            $infields.= $this->fields[$i];
            $valuesshow.="/$this->".$this->fields[$i];
            $invalues.="?";
            if($i<count($this->fields)-1)
            {
                $infields.=",";
                $invalues.=",";
                $valuesshow.=",";

            }

        }
        $query = "INSERT INTO ".$this->tablename."(".$infields."
                 
            )
            VALUES(    ".$invalues.")
        ";


        $ret.="/$query=/"".$query."/";/n";
        $ret.="/$values = array(".$valuesshow.");/n";

        $ret.="/$result = /$mDb->execute(/$query, /$values);
        if(!/$result){
            return false;
        } //set and return the new id
        /$this->set_".$this->fields[0]."(/$mDb->Insert_ID());
        return /$this->".$this->fields[0].";";
        $ret.="}/n";


        /////////////////////update////////////////////
        $valuesup="";
        $fieldsup="";
        for($i=1;$i<count($this->fields);$i++)
        {
            $valuesup.=$this->fields[$i]."=?";
            $fieldsup.="/$this->".$this->fields[$i]."";
     
            if($i<count($this->fields)-1)
            {
                $valuesup.=",";
                $fieldsup.=",";

            }

        }
       
        $ret.="public function db_update(){/n
        global /$applicationDb;
        /$mDb = /$applicationDb->getMaster();
       
        //Validate the supplied data before insert
     

       
        /$query = /"
            UPDATE User
            SET  ".$valuesup."
            WHERE User_ID = ".$this->fields[0]."
        /";

        /$values = array( ".$fieldsup."
        );

        /$result = /$mDb->execute(/$query, /$values);

        //check if the query was succesfull
        if(!/$result){
             return false;
        }

        return true;
    }/n";

        $ret.="/n}";
        return $ret;
    }

};
$tablename="User_Addresses";

$fields = array("User_Address_ID",
"User_ID",
"User_Address_Tag",
"Salutation",
"First_Name",
"Last_Name",
"Company_Name",
"Title_Name",
"Address1",
"Address2",
"City",
"ProvState",
"Postal",
"Country_Code",
"User_Address_Status",
"Timestamp");

$t = new genpo($tablename,$fields);
echo "<textarea rows=100 cols=100> ";
echo $t->genpo() ;
echo "/n/n</textarea>";



?>

version 3.0
<?php
class genpo
{
    private $tablename;
    private $fields;
    public function __construct($tablename, $fields){
        $this->tablename = $tablename;
        $this->fields = $fields;
    }

    public function genpo()
    {
        $ret="class ".$this->tablename."{";
        for($i=0;$i<count($this->fields);$i++)
        {
            $ret.="/n private $".$this->fields[$i].";";
        }
        $ret.="/n/*";
        for($i=0;$i<count($this->fields);$i++)
        {
            $ret.="/n /$var->set_".$this->fields[$i]."(/$".$this->fields[$i].");";
        }
        $ret.="/n*//n";

        for($i=0;$i<count($this->fields);$i++)
        {

            $ret.="/n public function set_".$this->fields[$i]."(/$".$this->fields[$i].")/n".
            "{/n/$this->".$this->fields[$i]."=/$".$this->fields[$i].";/n}";
            $ret.="/n public function get_".$this->fields[$i]."()/n{/n return /$this->".$this->fields[$i].";/n}";
        }
        //just let fields[0] to be primary key
        $ret.="/n public function db_save(){/n".
        "if(is_null(/$this->".$this->fields[0].") || /$this->".$this->fields[0]."==/"/"){/n".
        "return /$this->db_insert();
        }else{
            return /$this->db_update();
        }
    }/n";

        $ret.="public function db_insert(){/n
             global /$applicationDb;/n
        /$mDb = /$applicationDb->getMaster();/n
        //Validate the supplied data before insert
    ";

        $infields="";
        $invalues="";
        $valuesshow="";
        for($i=0;$i<count($this->fields);$i++)
        {
            $infields.= $this->fields[$i];
            $valuesshow.="/$this->".$this->fields[$i];
            $invalues.="?";
            if($i<count($this->fields)-1)
            {
                $infields.=",";
                $invalues.=",";
                $valuesshow.=",";

            }

        }
        $query = "INSERT INTO ".$this->tablename."(".$infields."
                 
            )
            VALUES(    ".$invalues.")
        ";


        $ret.="/$query=/"".$query."/";/n";
        $ret.="/$values = array(".$valuesshow.");/n";

        $ret.="/$result = /$mDb->execute(/$query, /$values);
        if(!/$result){
            return false;
        } //set and return the new id
        /$this->set_".$this->fields[0]."(/$mDb->Insert_ID());
        return /$this->".$this->fields[0].";";
        $ret.="}/n";


        /////////////////////update////////////////////
        $valuesup="";
        $fieldsup="";
        for($i=1;$i<count($this->fields);$i++)
        {
            $valuesup.=$this->fields[$i]."=?";
            $fieldsup.="/$this->".$this->fields[$i]."";
     
            if($i<count($this->fields)-1)
            {
                $valuesup.=",";
                $fieldsup.=",";

            }

        }
         
        $fieldsup.=",/$this->".$this->fields[0]."";
       
       
       
        $ret.="public function db_update(){/n
        global /$applicationDb;
        /$mDb = /$applicationDb->getMaster();
       
        //Validate the supplied data before insert
     

       
        /$query = /"
            UPDATE ".$this->tablename."
            SET  ".$valuesup."
            WHERE  ".$this->fields[0]."=?
        /";

        /$values = array( ".$fieldsup."
        );

        /$result = /$mDb->execute(/$query, /$values);

        //check if the query was succesfull
        if(!/$result){
            echo mysql_error()./"<br>/";
            echo /$query./"<br>/";
             return false;
             
        }

        return true;
    }/n";

        $ret.="/n}";
        return $ret;
    }

};
$tablename="User_Addresses";

$fields = array("User_Address_ID",
"User_ID",
"User_Address_Tag",
"Salutation",
"First_Name",
"Last_Name",
"Company_Name",
"Title_Name",
"Address1",
"Address2",
"City",
"ProvState",
"Postal",
"Country_Code",
"User_Address_Status",
"Timestamp");

$t = new genpo($tablename,$fields);
echo "<textarea rows=100 cols=100> ";
echo $t->genpo() ;
echo "/n/n</textarea>";



?>
原创粉丝点击