rhaco0.93用の簡易チュートリアル

2006/10/31 03:23

※ 商品のリンクをクリックして何かを購入すると私に少額の報酬が入ることがあります【広告表示】

Django勉強会 Disc1の打ち合わせ時に、phpのフレームワーク使うんならrhacoだよ、と言いまくってしまったので、簡単な使い方説明をします。

2007/02/15 追記

現場の若いのが、Rhaco1.0.1用に書き直しました

rhacoの利点等

どうやらphpのフレームワークの場合、あまりO/R等はメジャーではないようです。

→ rhacoにはバリデータ込みのO/Rマッパーがあります。

どうやらphpのフレームワークはPear等の別ライブラリが必要なことが多いようです。

→ rhacoは他のライブラリを必要としません(djangoみたい!)。mb_系は入っていると便利ですが。

どうやらphpのフレームワークはTemplateのextendsができないようです。

→ rhacoはブロックという単位のincludeと、ブロックという単位のextendsに対応しています(extendsは0.93から)。

どうやらphpのフレームワークは、phpであるにもかかわらずshellの利用が必要な場合があるようです。

→ rhacoはブラウザとテキストエディタがあれば開発できます(TrueStudio推奨)。

開発の進め方

rhacoのページ からダウンロードリンク(Quick Link → release)を辿って、rhacoの最新版をダウンロードします(sourceforge)。 (その際、goesbyというサンプルアプリケーションもダウンロードすると、使い方のサンプルになります。goesbyはhttp://www.goesby.c om/で動作しているソーシャルブックマークアプリケーションです)

ダウンロードしたrhaco.zipを解凍し、rhacoディレクトリをapacheが読み込み可能な場所に配置します。 Document rootより下に置く必要はありません(今回の例ではapacheの直下におきました)。

Document rootの下にプロジェクト用のディレクトリを作成します(root直下で使いたい場合は不要)。

rhacoディレクトリの直下にある**setup.php**を、プロジェクト用のディレクトリの中にコピーします。

setup.phpのコピー

それでは、setup.phpを表示してみましょう。 rhacoのpathを入力する用に要求されます。 rhacoを配置したディレクトリを指定してください。

rhacoのpathを設定する

「設定ボタン」をクリックすると、追加入力画面へ遷移します。 テンプレートのキャッシュ等いろいろな設定がありますが、今回は一番したの囲み「アプリケーション」にある「サンプルアプリケーション」にだけチェックを入れて「生 成する」ボタンをクリックしてください(権限がありませんというメッセージが表示されたら、apacheがプロジェクトディレクトリに書き込み可能な権限を付与して ください)。

サンプルアプリケーションにチェックを入れる

プロジェクトディレクトリの中身を見てください。setup.php以外にファイルやディレクトリが生成されているはずです。 setupディレクトリの中には、project.xmlというファイルがあります。

生成されたディレクトリ

このファイルにプロジェクトに関する内容を設定します。 サンプルアプリケーションとして、index.phpというファイルができています。 index.phpをブラウザで呼び出してみてください。入力フィールドが並んでいるはずです。 値を入力してサブミットすると、同じ画面に戻ってくるというだけのものですが、入力した値を保持しているはずです(0.93はcheckboxとradioの動作が おかしい?)。 これは、index.phpとresources/templates/index.htmlで動作しています。

次に、setup/project.xmlをいじってみましょう。下記のように記述してください。(もし利用するデータベースにアプリケーションから接続するデータ ベースユーザを作成していない場合には作成しておいてください)

  <project rhacovar="0.9.3">
    <database name="test">
      <table name="bbs">
        <column name="id" type="serial" />
        <column name="name" type="string"
        size="20" require="true" />
        <column name="comment" type="string"
        size="100" />
      </table>
    </database>
  </project>

再びsetup.phpをブラウザで開いてください。今度は中間あたりにデータベースの設定が増えているはずです。

データベースの設定

利用するデータベースを選択し、データベース接続ユーザやパスワード等を埋め、テーブル作成にチェックを入れて「生成する」ボタンをクリックしてください(テーブル接頭語は一つのデータベースで複数のアプリケーションを動作可能とするための便利機能です)。

library/dataディレクトリにたくさんのファイルができているはずです。O/Rで利用するクラス群です。

O/Rのファイル群が生成される

index.php/index.htmlをそれぞれ次のように修正してください。

  <html>
  <head>
      <title>index</title>
  </head>
  <body>
  <form method="post">
      name:<input type="text" name="name" reference="true" /><br />
      comment:<textarea name="comment" reference="true"></textarea>
      <input type="submit" value="submit" />
  </form>
  <ul>
  <rt:loop param="object_list" var="msg">
    <li>{$formatter.escape($msg.name)} :<br />
    {$formatter.escape($msg.comment)}</li>
  </rt:loop>
  </ul>
  </body>
  </html>

では、index.phpを表示してみましょう。 入力フォームがありますので、何も入力せずに「submit」ボタンをクリックしてみましょう。 何もおきませんよね。では、comment欄にだけ文字を入力して「submit」ボタンをクリックしてみましょう。入力がのこったまま元に戻ってきましたよね?

これは、project.xmlに設定したrequired="true"が効いているため、バリデータに止められてもとのページに戻ってきたのです。本来であれば、各入力フォーム毎にエラーメッセージの表示を行うのですが、やり方を忘れてしまったのではしょりました :)

では、nameとcommentに値を入力して「submit」ボタンをクリックしてください。メッセージが表示されましたね?操作を繰り返すとどんどん増えていきます。

complete

今回はページング等の実装はしませんでしたが、countやoffset、limit、も容易に扱えるので(SQL文はたいていの場合書く必要はありません。unionまでO/Rで扱えますよ)、goesbyのソースを眺めたり、 rhac-jaメーリングリスト に質問をしたりしてrhacoを楽しんでみてください。

Prev Entry

Next Entry