LiveRecord使い方一覧?! 
月曜日, 12月 11, 2006, 02:39 AM -  PHP
LiveRecord 一つずつ説明しようと思ったけども・・・一応コチラで開発しているときのテストコードのっけときます。見た方がはやいとおもって(笑)

        //------------------------------------------------------------
// INSERT VALUES テスト
//------------------------------------------------------------

$arrParams = array();

$objTBL->id = 9;
$objTBL->name = '入力データ';
$objTBL->insert( $arrParams );

unset( $arrParams );

//------------------------------------------------------------
// INSERT VALUES テスト2
//------------------------------------------------------------

$arrParams = array();
$arrParams[ LiveRecord::SUFFIX ] = ' aaaaaaaa ';

$objTBL->id = 9;
$objTBL->name = '入力データ';
$objTBL->insert( $arrParams );

unset( $arrParams );



//------------------------------------------------------------
// INSERT SELECT テスト
//------------------------------------------------------------

$arrParams = array();
$arrParams[ 'columns' ] = array( "MAX( id ) + 1", ':name' );
$arrParams[ 'where' ] = '';

$objTBL->id = 10;
$objTBL->name = '入力データ10';
$objTBL->insert( $arrParams );

unset( $arrParams );


//------------------------------------------------------------
// INSERT SELECT テスト2
//------------------------------------------------------------

$arrParams = array();
$arrParams[ 'columns' ] = array( "MAX( id ) + 1", ':test_param' );
$arrParams[ 'where' ] = '';
$arrParams[ 'binds' ] = array( 'test_param' => 'ほげー!' );

$objTBL->id = 10;
$objTBL->name = '入力データ12';
$objTBL->insert( $arrParams );

unset( $arrParams );



//------------------------------------------------------------
// UPDATE テスト
//------------------------------------------------------------

$objTBL->id = 10;
$objTBL->name = '入力データUPDATE';
$objTBL->update();


//------------------------------------------------------------
// UPDATE テスト2
//------------------------------------------------------------

$arrParams = array();
$arrParams[ 'where' ] = 'id = 55';

$objTBL->objRows->clearParameters();
$objTBL->name = 'aaaaaaaaa';
$objTBL->update( $arrParams );

unset( $arrParams );


//------------------------------------------------------------
// UPDATE テスト3
//------------------------------------------------------------

$arrParams = array();
$arrParams[ LiveRecord::WHERE ] = 'id = 1';
$arrParams[ LiveRecord::SUFFIX ] = ' AND id = 2';

$objTBL->objRows->clearParameters();
$objTBL->name = '更新';
$objTBL->update( $arrParams );

unset( $arrParams );


//------------------------------------------------------------
// DELETE テスト1
//------------------------------------------------------------

$objTBL->delete();


//------------------------------------------------------------
// DELETE テスト2
//------------------------------------------------------------

$arrParams = array();
$arrParams[ 'where' ] = 'id = 55';

$objTBL->delete( $arrParams );

unset( $arrParams );


//------------------------------------------------------------
// DELETE テスト3
//------------------------------------------------------------

$arrParams = array();
$arrParams[ LiveRecord::WHERE ] = 'id = 1';
$arrParams[ LiveRecord::SUFFIX ] = ' AND id=9';

$objTBL->delete( $arrParams );

unset( $arrParams );


//------------------------------------------------------------
// SELECT テスト
//------------------------------------------------------------

$arrParams = array();
$arrRows = $objTBL->select( $arrParams );


//------------------------------------------------------------
// SELECT テスト2
//------------------------------------------------------------

$arrParams = array();
$arrParams[ 'where' ] = 'id=2';
$arrRows = $objTBL->select( $arrParams );



//------------------------------------------------------------
// SELECT テスト3
//------------------------------------------------------------

$arrParams = array();
$arrParams[ LiveRecord::COLUMNS ] = array( 'id' => 'popop', 'name' => 'hogehoge' );
$arrParams[ LiveRecord::BINDS ] = array( "atari" => "%ほ" );
$arrParams[ LiveRecord::WHERE ] = "name LIKE :atari";
$arrParams[ LiveRecord::ORDER_BY ] = array( 'id' => 'ASC' );
$arrRows = $objTBL->select( $arrParams );


//------------------------------------------------------------
// SELECT テスト3
//------------------------------------------------------------

$arrParams = array();
$arrParams[ LiveRecord::COLUMNS ] = array( 'id' => 'popop', 'name' => 'hogehoge' );
$arrParams[ LiveRecord::ORDER_BY ] = array( 'id' => 'DESC' );
$arrParams[ LiveRecord::LIMIT ] = 2;
$arrParams[ LiveRecord::OFFSET ] = 0;
$arrRows = $objTBL->select( $arrParams );


//------------------------------------------------------------
// SELECT テスト4
//------------------------------------------------------------

$arrParams = array();
$arrParams[ LiveRecord::COLUMNS ] = array( 'SUM( id )' => 'popop', 'name' => 'hogehoge' );
$arrParams[ LiveRecord::GROUP_BY ] = array( 'id' );
$arrRows = $objTBL->select( $arrParams );

//------------------------------------------------------------
// SELECT テスト5
//------------------------------------------------------------

$arrParams = array();
$arrParams[ LiveRecord::COLUMNS ] = array( 'SUM( id )' => 'popop', 'name' => 'hogehoge' );
$arrParams[ LiveRecord::GROUP_BY ] = array( 'id' );
$arrParams[ LiveRecord::HAVING ] = " SUM( id ) > 11 ";
$arrRows = $objTBL->select( $arrParams );


//------------------------------------------------------------
// SELECT テスト6
//------------------------------------------------------------

$arrParams = array();
$arrParams[ LiveRecord::COLUMNS ] = array( 'SUM( id )' => 'popop', 'name' => 'hogehoge' );
$arrParams[ LiveRecord::GROUP_BY ] = array( 'id' );
$arrParams[ LiveRecord::HAVING ] = " SUM( id ) > 11 ";
$arrParams[ LiveRecord::PREFIX ] = " ";
$arrParams[ LiveRecord::SUFFIX ] = " OR SUM(id) < 11; ";
$arrRows = $objTBL->select( $arrParams );


//------------------------------------------------------------
// SELECT テスト7 CROSS JOIN
//------------------------------------------------------------

$arrParams = array();
$arrParams[ LiveRecord::JOINS ][] = array(
LiveRecord::JOIN_TYPE => 'CROSS',
LiveRecord::JOIN_TABLE => 'tbl_hoge'
);
$arrParams[ LiveRecord::JOINS ][] = array(
LiveRecord::JOIN_TYPE => 'CROSS',
LiveRecord::JOIN_TABLE => 'tbl_hoge2'
);
$arrRows = $objTBL->select( $arrParams );



//------------------------------------------------------------
// SELECT テスト8 CROSS JOIN2
//------------------------------------------------------------

$objTBLHoge = new tbl_hoge( $this->objDatabase->getConnection() );
$arrTempParams[ LiveRecord::WHERE ] = 'c_id = 1';


$objTBLHoge2 = new tbl_hoge2( $this->objDatabase->getConnection() );
$arrTempParams2[ LiveRecord::WHERE ] = 'c_id = 1';


$arrParams = array();
$arrParams[ LiveRecord::JOINS ][] = array(
LiveRecord::JOIN_TYPE => 'CROSS',
LiveRecord::JOIN_TABLE => $objTBLHoge,
LiveRecord::JOIN_PARAMS => $arrTempParams
);
$arrParams[ LiveRecord::JOINS ][] = array(
LiveRecord::JOIN_TYPE => 'CROSS',
LiveRecord::JOIN_TABLE => $objTBLHoge2,
LiveRecord::JOIN_PARAMS => $arrTempParams2
);
$arrRows = $objTBL->select( $arrParams );



//------------------------------------------------------------
// SELECT テスト9 INNER JOIN
//------------------------------------------------------------

$arrParams = array();
$arrParams[ LiveRecord::JOINS ][] = array(
LiveRecord::JOIN_TYPE => 'INNER',
LiveRecord::JOIN_TABLE => 'tbl_hoge',
LiveRecord::JOIN_LFN => 'tbl_test.id',
LiveRecord::JOIN_RFN => 'tbl_hoge.c_id'
);
$arrRows = $objTBL->select( $arrParams );


//------------------------------------------------------------
// SELECT テスト9 INNER JOIN2
//------------------------------------------------------------

$objTBLHoge = new tbl_hoge( $this->objDatabase->getConnection() );
$arrTempParams[ LiveRecord::WHERE ] = 'c_id = 3';

$objTBLHoge2 = new tbl_hoge2( $this->objDatabase->getConnection() );
$arrTempParams2[ LiveRecord::WHERE ] = 'c_id = 3';

$arrParams = array();
$arrParams[ LiveRecord::JOINS ][] = array(
LiveRecord::JOIN_TYPE => 'RIGHT OUTER',
LiveRecord::JOIN_TABLE => $objTBLHoge,
LiveRecord::JOIN_PARAMS => $arrTempParams,
LiveRecord::JOIN_LFN => 'tbl_test.id',
LiveRecord::JOIN_RFN => 'tbl_hoge.c_id'
);
$arrParams[ LiveRecord::JOINS ][] = array(
LiveRecord::JOIN_TYPE => 'RIGHT OUTER',
LiveRecord::JOIN_TABLE => $objTBLHoge2,
LiveRecord::JOIN_PARAMS => $arrTempParams,
LiveRecord::JOIN_LFN => 'tbl_test.id',
LiveRecord::JOIN_RFN => 'tbl_hoge2.c_id'
);
$arrRows = $objTBL->select( $arrParams );



2 comments ( 24 views )   |  このエントリーのURL   |  related link   |   ( 3 / 24 )

xFrameworkインストーラー完成 
土曜日, 12月 9, 2006, 08:36 PM -  PHP
まぁ似たようなこと書いた覚えがありますが・・。
おはようございます、小堤です。

さて、xFrameworkのインストーラーが出来ました。デザインも(ちょっと最終調整あるけども)こんなかんじです。


※クリックしてください。

デザイン的にも、内容的にも固まったので公開します。
今晩たぶんリリースするxFramework2.1.1 Preview2に入ります。
これで.htaccessとかの書き換え作業がなくなり、スムーズにxFrameworkの導入が行えると思います。

これでxFramework2.1.1で実装する予定だったLiveRecord、CLI版、インストーラーが完成です。あとは動作チェックを細かくやってからStableにしてリリースします。
ちょっとドキュメントが追いついていないですが、そっちも随時更新してきます。

ああ・・おなかすいた。

xFramework Command Line Interface(CLI) 完成 
金曜日, 12月 8, 2006, 12:08 PM -  PHP
ほぃ。小堤です。

ずーっと前からいっていたCLI版のブートストラップと、それに関連するクラスの実装が終わりました。これで、WRI同様のアクションの書き方で、コンソール上でxFrameworkを動作させることが出来ます。(xFramework2.1.1 Preview2で出します)

php xfc.php xa=hoge cp=test/


こんな感じ。

これが出来ると何がすごいの?って話なんですが〜。
WEBってリクエストが長いときれちゃいますよね?そういった大量の処理や、バックグラウンドで行いたい処理、クーロンなどで回したい処理などがxFrameworkを用いて実装できます。

例えば、会員の名前をPDF等に埋め込む処理を行い、その同じPDFを100枚作り、ZIPで圧縮して、それが完了したら会員にメールを送りDLしてくださいと通知する。こんな処理もウェブ上からCLI版xFrameworkをキックして、「メールが届きましたらダウンロードを開始してください。」とか表示して、終わる。みたいなことができます。まぁ用途は色々ありますが、メリットとして、ウェブ上のアクションと同じクラス、同じインタフェースで実装できますし、アクションスタックも同様に利用できます。もちろんライブラリも。

まぁ弊社では、さらに・・・色々考えていますが、それはお楽しみということで(笑)
さて、休憩するべかー :)


xFrameworkインストーラー機能の実装完了 
金曜日, 12月 8, 2006, 08:21 AM
はいはい、おはようございます。相変わらずぼーっとしています。いつまで続くんでしょうか・・・この状態(笑)
さて、xFramework2.1.1 Preview2がもう少ししたら出ます、いくつか機能が追加されているのですが、前から言っているLiveRecordもその1つです。そしてもう一つがxFrameworkのインストーラー機能の実装です。これは xFrameworkのインストールで説明している作業が、ビジュアル的に、そして特別カスタマイズしないインストールであれば、クリックだけでインストールが完了します。

手順としては、xFrameworkをDLしてきて展開。XAMPP環境であれば該当のディレクトリにコピー、外部サーバであればUPLOADをします。そして、そのコンテンツにアクセスします。そうするとインストーラーが走ります。まぁXoopsとかそういうやつと一緒です。
画面イメージとしては、下記のような感じです

これはパワーポイントのスナップショットですが、実際の機能は実装完了しました。いまデザインを差し込み中です。
はぁー、あとCLI機能を作ればxFramework2.1.1 Preview2をリリース出来そうです。
インストールする際に、自分で.htaccessとかを書かなくて良くなるので、プログラマじゃない方でも簡単に導入できるようになります。

さて、ブログも書いたし、CLI 作るかぁ:|

やっと、オブジェクトの説明が書き終わった。 
木曜日, 12月 7, 2006, 06:24 AM - 日記
まぁ・・xFrameworkのネタしかないわけですが(苦笑)
やっとドキュメントの各オブジェクトの説明が書き終わりました。
http://www.xframework.jp/document/tutorial/index.html

いや、マジで大変。やりたいことが進まないというか、今までやってきたことを説明するのは大変です。まぁそれでも書き慣れてきたっちゃー書き慣れてきたけども。
そして相変わらずこの時間。

ああ、皆さんありがとうございます。着実に更新しているせいなのかどうなのかわかりませんが、着実にサイトに来ていただけているようで、ありがたい話です(^^;
本当におもしろくなってくるのは、この先なんで楽しみにしてもらえるとありがたいです。

さて、どこまでやってもマニュアルが気が終わらないから、そろそろ飽きてきたな(苦笑)
でもまぁ、どっかで区切りつけてxFramework2.1.1をリリースできるようにしなきゃ・・・。
ああ、LiveRecordについては、今日は余裕がないので触れませんが、ちょっとづつ触れていきます。xFramework2.1.1preview落としてくれている方もいるので。
ということで、引き続きがんばります。
コメントを書く   |  このエントリーのURL   |  related link   |   ( 2.9 / 26 )


Back Next