Mar 3
逆引きrhaco23: データベースの設定を定義する
まず最初に結論です。
rhacoでDBの設定するには
「project.xmlを変更して、settingボタンを押してテーブル生成ボタンを押す」
これだけです!おしまい。
------以下は詳しく読みたい人向けです。
rhacoはデータベースへ簡単にアクセスする機能を持っています。この機能はデータベースがからむシステム(ほとんどのシステムだと思いますが)では非常に強力です。まずはデータベースへアクセスするための設定をしましょう。
実はチュートリアルにも載ってる内容なんですが・・・
まず例としてproject.xmlを次のように書きます(細かい内容は後の記事を参照下さい)
project.xml
<project rhacover="1.4.0" version="1.0.0" name="rhacotest" xmlns="http://rhaco.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://rhaco.org http://media.rhaco.org/project.xsd"> <database name="test" renew="true"> <table name="Product" admin="true"> <column name="id" /> <column name="name" label="製品名"></column> </table> </database> </project>
このproject.xmlを「プロジェクトのホームディレクトリ/setup」に配置します。プロジェクトのホームディレクトリの初期値はrhacoのsetup.phpを配置するディレクトリになっています。
そしておもむろにsetup.phpをブラウザで開くとsetting画面が表示されます(現在のtrunkと1.4.0ではそうなります)。その表示項目の中に「データベースの設定」という項目があります。そこで以下の項目を記入して下さい。
1.データベースサーバ:rhacoはphpの状態を見て使えるDBのリストを表示してくれます。使用するDBサーバを選んで下さい。rhacoはMySQL, Oracle, PostgreSQL, SQLiteに対応しています。
2.データベースサーバのホスト名:ipアドレスを記入します。ローカルならlocalhostです。
3.データベース名:アクセスするデータベース名です。project.xmlで記入したdatabase名が初期値として自動的に入ります。
4.データベースユーザー名:データベースのユーザー名を指定します。
5.データベースパスワード:ユーザー名に対応するパスワードを指定します。
6.データベースのポート番号:ポートがデフォルトと違う場合に入力します。
7.エンコード:データベースで使用するエンコードを指定します。
8.テーブル接頭語。自動で接頭語候補が表示されます。必要があれば指定します。
設定が終わったら(他の項目の設定もした後ですが)settingボタンを押して設定を完了させます。するとプロジェクト内に
-library
-model
Product.php
-table
ProductTable.php
という形でファイルが自動生成されます。この内Product.phpをモデル、ProductTable.phpをテーブルモデルと呼びます(※と言いつつ絶対違うと思うのでツッコミお待ちします>中の人)。
rhacoのDBツールで非常に強力な点の一つは「テーブル定義が変わった場合はproject.xmlを変更してsettingボタンを押すだけで反映される」点にあります。
例えば
とりあえず簡単なテーブル作っておいて、プログラムを書きながら 「このカラムは0か1しか持たないな」とか思った時、
仕事で使用していて「あ、そこのテーブル文字数20文字制限だったけど 30文字制限に変わったんだ」と言われた時、
「project.xmlを変更してsettingボタンを押す」だけで修正できます!
さらに進みます。モデルの設定が終わったので次にテーブルを作成します。setup.phpのdatabaseリンクをクリックすると、テーブル作成、初期データを作成する、admin、queryが選択できます。
まずはテーブルを作成しないと何も出来ないので作成ボタンを押します。押した後エラーメッセージがでなければ作成完了です(データベースとかユーザーとか指定したものを予め作成しておかないとエラーメッセージが表示されます)。
初期データは今回作成していないので(本当はdefaultタグで作成します。後の記事を参照して下さい)、adminを見てみます。今回テーブルは1つだけなので、Productだけ表示されています。controlボタンを押すと、
テーブルの管理画面に入れます。単純なデータベース管理ならこれだけで出来ちゃいます。CRUDを書いて管理画面を作成する必要すらありません。しかもここからデータのインポートやエクスポートも出来ます(rhacoのproject.xml形式になります)。検索も出来ます。なんでもありです。
ここまでやるとこんなことが簡単に出来ます。
例えば
システム作ってる途中で「あーカラム追加しないといけないなー」と思った時
「あー、テーブル定義を正規化して変更したのでよろしく」なんて言われた時
他のアプリのテーブルを使っていたら、バージョンアップで アプリのカラム名が変わってしまった時(あるかな?)
一旦テーブルは作ったけど「この定義何か気に入らないなー。 名前がかっこわるいなー」と思った時
別のデータベースと連動する話になった時
「project.xmlを変更して、settingボタンを押してテーブル生成ボタンを押す」だけで出来てしまいます!!!
(テーブルを作ってたら先に削除しないといけないですが)
デザイナー募集!
そんなrhacoは現在デザイナーを募集中です。
・rhacoの微妙な管理画面をもっとかっこよくしたい方
・rhacoのテンプレートって便利だなー勉強したいなーと思った方
是非rhacoにご参加下さい。
このエントリーのはてなブックマーク (