水曜日, 12月 6, 2006, 11:38 AM - PHP
約束したので、LiveRecordの記述の仕方を断片的になるかも知れませんが、説明します。まず、LiveRecordクラスは必ず継承して利用します。まぁAbstractクラスになっているので直接は利用できませんが。
1.データベースに接続できる状況を作ってください。xFrameworkで。
2.そこにtbl_testというテーブルを作り、id(int)、name(varchar(100))のフィールドを用意します。
さて、これで普通に
SELECT * FROM tbl_test;
とかで取得できるはずです。
では、同じことをする準備をします。
LiveRecordクラスを継承したクラス「tbl_test」を用意します。このときのクラス名はテーブル名と同一にしてください。
class tbl_test extends LiveRecord {
....
}
といった形になると思います。特にメソッドなどは用意しなくて結構です。
これをAutoload.xmlなどに設定してrequireしなくて良いように、したいところですが、テーブルが増える度にautoload.xmlに設定するのは、手間ですしミスがうまれるかもしれません。なので、これを_libraryに配置して、ライブラリとして自動的に読み込むようにします。
単純に、作成したtbl_test.class.phpと_libraryに配置するだけです。
さて、使ってみましょう。
indexAction.class.phpのexecute中に下記のように記述します。
$objTBL = new tbl_test( $this->objDatabase->getConnection() );
$objTBLがLiveRecordを継承したtbl_testクラスです。
これで、操作準備OKです。
では、実際に先ほどのSELECTを同一の処理を行ってみます。
$arrParams = array();
$arrRows = $objTBL->select( $arrParams );
これだけです。SELECTに関する条件などの情報は、引数の$arrParamsに記述します。
長くなってきたので、次回SELECTのいくつかの例を記載したいと思います。
コメントを書く
| このエントリーのURL
| related link
| ( 2.9 / 26 )
火曜日, 12月 5, 2006, 07:07 PM - 日記
ああ、眠い。最近これしか言ってない気がする・・。さて、 xFrameworkのサイト、チュートリアルの記事追加しました。1つ1つ自分の作ったものを説明するのは大変ですね。。。
まぁ着実に作っていきます。
そこからやっているので、LiveRecordの未実装部分(実はちょっとあるんです、まだ内容は秘密ですが(笑)とか出来てないし、それ以前に、まぁ明日か明後日にでもできればいいなぁと思っているのが、LiveRecordの使い方。xFrameworkのサイトアクセス解析見ていると、意外と落としてくれているので、xFramework2.1.1 Previewにから実装されたLiveRecordの具体的な使い方を、プレ記事みたいな感じで、ここにかこうかなぁと思っています。
まぁO/Rマッピング知らない人とかからすると、何それってはなしなんでしょうけども、要するにSQL書かないでデータベースの操作を行うってかんじです。
それなりに業務で支障の無いレベルのものにはしてあるので、次の案件から実際に使っていこうと思っています。
あと、やっぱコンテンツ作り大変・・・・ホント、社員でもボランティアでもいいから手伝ってくれるような同士いないかなぁ(+_+;やりたいこと全部やってたら死んじゃう(涙)
でも、今日こそ寝てやる!と決めているので、12時前には、あっちの世界でるんるんしているはずです。あーこう書いてて思うけども、なんかやっぱり社長のBLOGっぽくない・・・もっとっぽい夢とか指針とか書いた方がいいんですかね。
ちゃんとビジョンも指針もありますが、出しても誰も喜ばないと思って(笑)
火曜日, 12月 5, 2006, 06:49 AM - 日記
いやいや、技術的な記事ではないのですが、先ほど本番サーバに会社のサイトをアップ完了しました。xFrameworkのサイト共々。xFrameworkで動作しています。http://www.xenophy.com/
まぁ毎度のことですが、関係者の方々お疲れ様でした。
って気づけば毎日この時間にここにいる(涙)
いま、xFrameworkの方のサイト記事も執筆してます。近日また更新かけます。
色々やりたいことあるから、結局こうなる
他方の方々の期待に応えられるようがんばります。
月曜日, 12月 4, 2006, 07:06 AM - PHP
はい、小堤です。xFrameworkですが、アクセス毎にブートストラップが動作します。そのためソースキャッシュを独自で行いかなり高速化してあります。しかし、ファイルトランスファーの画像転送などがあるため、さらに早くしたほうがいいでしょう。
そこで、eAcceralatorというモジュールを使います。
eAccelerator自体は、ググればたくさんインストールの仕方がでてますが
cd /usr/local/src;
wget http://downloads.sourceforge.net/eaccel ... ror=jaist;
tar jxf eaccelerator-0.9.5.tar.bz2;
cd eaccelerator-0.9.5;
phpize;
./configure --enable-eaccelerator \
--with-eaccelerator-shared-memory \
--with-eaccelerator-sessions \
--with-eaccelerator-content-caching \
--with-eaccelerator-disassembler
make;
make install;
こんなかんじ。SourceForgeからDLするときに直リンクでいけないっぽいので、一回ブラウザでアクセスしてからになるのかな???
とりあえずここからDLしてくだされ。
http://sourceforge.net/project/showfile ... _id=122249
で、だ。
なんでこんな記事をかいているかというとですね。
PHP.5.2.0をつかってxFrameworkを動かしたときに。eAccelerator.0.9.5だと動かないんですよ。二回目のアクセスで画面真っ白くなります。
PHP.5.1.6+eAccelerator0.9.5ならOKなんですがね。
で、5.2.0で回避策を。
eAccelerator0.9.6-svn282-dev を使ってください。
http://snapshots.eaccelerator.net/eacce ... 282.tar.gz
からDLできますので、wgetで取得するURLを書き換えてくださればOKです。
これ、eAccelerator.0.9.6のスナップショットなので、まぁ0.9.6が出てきたときには直ってるんでしょう。こっちのソースをどうにかしないとだめかなぁと思ったのですが、さくっと直ってたので、うれしい限りです。
月曜日, 12月 4, 2006, 04:41 AM - サーバ関連
はまった。はまった。はまった。くそっ。VM上では大丈夫だったので気にしないで実機にいれてはまった。
えーっとですね、Oracle Express入れたときの話です。
まぁぐぐったらよくでてくるやつで、Oracle XEいれます。
そうすると、http://127.0.0.1:8080/apexにアクセスすれば?みたいなメッセージでます。
うん、つながらない。
nmapなどで確認したところ、ない・・・。
nmap サーバアドレス
で、無い。
だけども
nmap localhost
だと、あ!ある。
これって、単純にローカル以外の接続拒否ってるだけでは?!とおもって調べたらビンゴ。
source /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh
sqlplus system
(パスワードいれて・・っと)
EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
これで、
nmap サーバアドレス
で8080(僕は8888にしたけども)がちゃんとリスンしてるではないか。
んで、早速アクセス・・・・・・・でたーーーーーー!!!!
ふぅ・・これでしばらくオラクルで悩まなくてよさそう・・PHPのコンパイルのときくらいか。
Back Next