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にご参加下さい。


| comment()

このエントリーのはてなブックマーク (-)