top


総投稿数 本 
no_

スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)
no_642

PHP Object Generator:モデルクラスの自動生成。こんなの使ってると覚えないかなぁ、でも便利だ。 ・・・ 【PHP】

 2009-01-21
 PHPを利用して
 ・ちょこっとしたスクリプトを超えると
  クラス利用したプログラムがやはり、わかり易い。

  メンテナンスも楽だし、今までの資産(?)も
  生かせるし・・・

 でも結構面倒くさいときもありますね。
で、このツール。
簡単に「オブジェクトモデル」の雛形を
自動生成してくれる
Php Object Generator (v3.0e) - Open Source PHP Code Generator
Php Object Generator (v3.0e) - Open Source PHP Code Generator とってもシンプルな使い方



 ■やってみよう・・・

  ・PHPのバージョン指定して
   PHPのバージョン指定して

  ・オブジェクト(モデル)の名称を設定
   オブジェクト(モデル)の名称を設定

  ・データ項目を設定
   データ項目を設定
   ※デフォルトは3つ表示されているけど、
    [Add attribute] でいくらでも増やせる

  ・[Submit] をクリックすれば・・・
   [Submit] をクリックすれば・・・

    ▼

   (あらら、不思議)

  ・ソースが自動生成される。

・・・以下、長いので、「追記」に。

FC2ブログランキングにほんブログ村 IT技術ブログ Webサイト構築へブログ王ランキング人気ブログランキング人気ホームページランキングへ


more
/*
This SQL query will create the table to store your object.

CREATE TABLE `testobject` (
`testobjectid` int(11) NOT NULL auto_increment,
`name_user` VARCHAR(255) NOT NULL,
`sex_user` SMALLINT NOT NULL,
`add_user` TEXT NOT NULL,
`tel_user` VARCHAR(255) NOT NULL,
`mail_user` VARCHAR(255) NOT NULL, PRIMARY KEY (`testobjectid`)) ENGINE=MyISAM;
*/

/**
* testobject class with integrated CRUD methods.
* @author Php Object Generator
* @version POG 3.0e / PHP4
* @copyright Free for personal & commercial use. (Offered under the BSD license)
* @link http://www.phpobjectgenerator.com/?language=php4&wrapper=pog&objectName=testobject&attributeList=array+%28%0A++0+%3D%3E+%27name_user%27%2C%0A++1+%3D%3E+%27sex_user%27%2C%0A++2+%3D%3E+%27add_user%27%2C%0A++3+%3D%3E+%27tel_user%27%2C%0A++4+%3D%3E+%27mail_user%27%2C%0A%29&typeList=array+%28%0A++0+%3D%3E+%27VARCHAR%28255%29%27%2C%0A++1+%3D%3E+%27SMALLINT%27%2C%0A++2+%3D%3E+%27TEXT%27%2C%0A++3+%3D%3E+%27VARCHAR%28255%29%27%2C%0A++4+%3D%3E+%27VARCHAR%28255%29%27%2C%0A%29
*/
include_once('class.pog_base.php');
class testobject extends POG_Base
{
var $testobjectId = '';

/**
* @var VARCHAR(255)
*/
var $name_user;

/**
* @var SMALLINT
*/
var $sex_user;

/**
* @var TEXT
*/
var $add_user;

/**
* @var VARCHAR(255)
*/
var $tel_user;

/**
* @var VARCHAR(255)
*/
var $mail_user;

var $pog_attribute_type = array(
"testobjectId" => array('db_attributes' => array("NUMERIC", "INT")),
"name_user" => array('db_attributes' => array("TEXT", "VARCHAR", "255")),
"sex_user" => array('db_attributes' => array("NUMERIC", "SMALLINT")),
"add_user" => array('db_attributes' => array("TEXT", "TEXT")),
"tel_user" => array('db_attributes' => array("TEXT", "VARCHAR", "255")),
"mail_user" => array('db_attributes' => array("TEXT", "VARCHAR", "255")),
);
var $pog_query;


/**
* Getter for some private attributes
* @return mixed $attribute
*/
function __get($attribute, &$value)
{
@eval('$result = $this->_'.$attribute.';');
if ($result == null)
{
$value = false;
}
$value = $result;
return true;
}

function testobject($name_user='', $sex_user='', $add_user='', $tel_user='', $mail_user='')
{
$this->name_user = $name_user;
$this->sex_user = $sex_user;
$this->add_user = $add_user;
$this->tel_user = $tel_user;
$this->mail_user = $mail_user;
}


/**
* Gets object from database
* @param integer $testobjectId
* @return object $testobject
*/
function Get($testobjectId)
{
$connection = Database::Connect();
$this->pog_query = "select * from `testobject` where `testobjectid`='".intval($testobjectId)."' LIMIT 1";
$cursor = Database::Reader($this->pog_query, $connection);
while ($row = Database::Read($cursor))
{
$this->testobjectId = $row["testobjectid"];
$this->name_user = $this->Unescape($row["name_user"]);
$this->sex_user = $this->Unescape($row["sex_user"]);
$this->add_user = $this->Unescape($row["add_user"]);
$this->tel_user = $this->Unescape($row["tel_user"]);
$this->mail_user = $this->Unescape($row["mail_user"]);
}
return $this;
}


/**
* Returns a sorted array of objects that match given conditions
* @param multidimensional array {("field", "comparator", "value"), ("field", "comparator", "value"), ..}
* @param string $sortBy
* @param boolean $ascending
* @param int limit
* @return array $testobjectList
*/
function GetList($fcv_array = array(), $sortBy='', $ascending=true, $limit='')
{
$connection = Database::Connect();
$sqlLimit = ($limit != '' ? "LIMIT $limit" : '');
$this->pog_query = "select * from `testobject` ";
$testobjectList = Array();
if (sizeof($fcv_array) > 0)
{
$this->pog_query = $this->pog_query . " where ";
for ($i=0, $c=sizeof($fcv_array); $i<$c; $i++)
{
if (sizeof($fcv_array[$i]) == 1)
{
$this->pog_query = $this->pog_query . " ".$fcv_array[$i][0]." ";
continue;
}
else
{
if ($i > 0 && sizeof($fcv_array[$i-1]) != 1)
{
$this->pog_query = $this->pog_query . " AND ";
}
if (isset($this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes']) && $this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes'][0] != 'NUMERIC' && $this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes'][0] != 'SET')
{
if ($GLOBALS['configuration']['db_encoding'] == 1)
{
$value = POG_Base::IsColumn($fcv_array[$i][2]) ? "BASE64_DECODE(".$fcv_array[$i][2].")" : "'".$fcv_array[$i][2]."'";
$this->pog_query = $this->pog_query . "BASE64_DECODE(`".$fcv_array[$i][0]."`) ".$fcv_array[$i][1]." ".$value;
}
else
{
$value = POG_Base::IsColumn($fcv_array[$i][2]) ? $fcv_array[$i][2] : "'".$this->Escape($fcv_array[$i][2])."'";
$this->pog_query = $this->pog_query . "`".$fcv_array[$i][0]."` ".$fcv_array[$i][1]." ".$value;
}
}
else
{
$value = POG_Base::IsColumn($fcv_array[$i][2]) ? $fcv_array[$i][2] : "'".$fcv_array[$i][2]."'";
$this->pog_query = $this->pog_query . "`".$fcv_array[$i][0]."` ".$fcv_array[$i][1]." ".$value;
}
}
}
}
if ($sortBy != '')
{
if (isset($this->pog_attribute_type[$sortBy]['db_attributes']) && $this->pog_attribute_type[$sortBy]['db_attributes'][0] != 'NUMERIC' && $this->pog_attribute_type[$sortBy]['db_attributes'][0] != 'SET')
{
if ($GLOBALS['configuration']['db_encoding'] == 1)
{
$sortBy = "BASE64_DECODE($sortBy) ";
}
else
{
$sortBy = "$sortBy ";
}
}
else
{
$sortBy = "$sortBy ";
}
}
else
{
$sortBy = "testobjectid";
}
$this->pog_query = $this->pog_query . " order by ".$sortBy." ".($ascending ? "asc" : "desc")." $sqlLimit";
$thisObjectName = get_class($this);
$cursor = Database::Reader($this->pog_query, $connection);
while ($row = Database::Read($cursor))
{
$testobject = new $thisObjectName();
$testobject->testobjectId = $row['testobjectid'];
$testobject->name_user = $this->Unescape($row['name_user']);
$testobject->sex_user = $this->Unescape($row['sex_user']);
$testobject->add_user = $this->Unescape($row['add_user']);
$testobject->tel_user = $this->Unescape($row['tel_user']);
$testobject->mail_user = $this->Unescape($row['mail_user']);
$testobjectList[] = $testobject;
}
return $testobjectList;
}


/**
* Saves the object to the database
* @return integer $testobjectId
*/
function Save()
{
$connection = Database::Connect();
$this->pog_query = "select `testobjectid` from `testobject` where `testobjectid`='".$this->testobjectId."' LIMIT 1";
$rows = Database::Query($this->pog_query, $connection);
if ($rows > 0)
{
$this->pog_query = "update `testobject` set
`name_user`='".$this->Escape($this->name_user)."',
`sex_user`='".$this->Escape($this->sex_user)."',
`add_user`='".$this->Escape($this->add_user)."',
`tel_user`='".$this->Escape($this->tel_user)."',
`mail_user`='".$this->Escape($this->mail_user)."' where `testobjectid`='".$this->testobjectId."'";
}
else
{
$this->pog_query = "insert into `testobject` (`name_user`, `sex_user`, `add_user`, `tel_user`, `mail_user` ) values (
'".$this->Escape($this->name_user)."',
'".$this->Escape($this->sex_user)."',
'".$this->Escape($this->add_user)."',
'".$this->Escape($this->tel_user)."',
'".$this->Escape($this->mail_user)."' )";
}
$insertId = Database::InsertOrUpdate($this->pog_query, $connection);
if ($this->testobjectId == "")
{
$this->testobjectId = $insertId;
}
return $this->testobjectId;
}


/**
* Clones the object and saves it to the database
* @return integer $testobjectId
*/
function SaveNew()
{
$this->testobjectId = '';
return $this->Save();
}


/**
* Deletes the object from the database
* @return boolean
*/
function Delete()
{
$connection = Database::Connect();
$this->pog_query = "delete from `testobject` where `testobjectid`='".$this->testobjectId."'";
return Database::NonQuery($this->pog_query, $connection);
}


/**
* Deletes a list of objects that match given conditions
* @param multidimensional array {("field", "comparator", "value"), ("field", "comparator", "value"), ..}
* @param bool $deep
* @return
*/
function DeleteList($fcv_array)
{
if (sizeof($fcv_array) > 0)
{
$connection = Database::Connect();
$pog_query = "delete from `testobject` where ";
for ($i=0, $c=sizeof($fcv_array); $i<$c; $i++)
{
if (sizeof($fcv_array[$i]) == 1)
{
$pog_query = $pog_query . " ".$fcv_array[$i][0]." ";
continue;
}
else
{
if ($i > 0 && sizeof($fcv_array[$i-1]) !== 1)
{
$pog_query = $pog_query . " AND ";
}
if (isset($this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes']) && $this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes'][0] != 'NUMERIC' && $this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes'][0] != 'SET')
{
$pog_query = $pog_query . "`".$fcv_array[$i][0]."` ".$fcv_array[$i][1]." '".$this->Escape($fcv_array[$i][2])."'";
}
else
{
$pog_query = $pog_query . "`".$fcv_array[$i][0]."` ".$fcv_array[$i][1]." '".$fcv_array[$i][2]."'";
}
}
}
return Database::NonQuery($pog_query, $connection);
}
}
}overload('testobject');
?>


 ・ご丁寧に
  出来上がったものを
  ・コピペで取得するだけでなく
  ・Zipファイルのダウンロード機能まで用意されている


メッセージやコメントが少し冗長すぎるけれども、
これは便利。
また、ソースを記述するいい勉強にもなるな。
commentsコメント
comment_post












管理者にだけ表示を許可する
commentトラックバック
トラックバックURL:
http://metaboy.blog23.fc2.com/tb.php/642-9358ce94
ようこそ
Add to Google 創るmetaboy:RSSフィード
My Yahoo!に追加
最新記事のRSS | 問い合わせ

仕事検索、アルバイト検索、依頼仕事の検索ポータル - 仕事検索.COM - www.jobkensaku.com ツクルン

創るmetaboy - WEB創る、サイト創る、何創る - 創ったmetaboy

 

リンク集

 

最近の記事

 

ブロとも申請フォーム
Sponserd by

さくらのレンタルサーバ さくらのレンタルサーバ
大容量・高機能レンタルサーバー heteml 大容量・高機能レンタルサーバー heteml
XREA (ValueDomain)
お名前.com お名前.com
名づけてねっと名づけてねっと
ムームードメインムームードメイン

 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。