EthnaでAppObjectを使う

今までどうやってDBにアクセスしてたんだ?っとツッコミはさておき...。
EthnaではO/RマッパーとしてEthna_AppObjectが用意されているので、このオブジェクトを作ると用意にDBにアクセスできる様になる。
ethnaコマンドでオブジェクトを作る。
たとえば、personというテーブルがDB内にあったとき、そのテーブルにアクセスするオブジェクトを作るには、

% ethna add-app-object person

これで、プロジェクトディレクトリ内のAppディレクトリ内にファイルが生成される。
プロジェクト名が"sample"だと、app/Sample_Person.php が生成される。
これが生成されれば、後はインスタンスを生成して、そのインスタンスに対してsetメソッドで変数をセットした後、addメソッドを実行するとDBに反映される。
setメソッドの第一引数はプロパティ名で第二引数は値。

<?php
class Sample_Form_Main extends Sample_ActionForm
{
   // 省略
}

class Sample_Action_Main extends Sample_ActionClass
{
  function prepare()
  {
      return null;
  }

  function perform()
  {
     $person = $this->backend->getObject('person');
     $person->set("name", "taro yamada");
     $person->add();
     return 'main';
  }
}
?>

こんな感じで書けばActionが実行された際にpersonテーブルのnameカラムに"taro yamada"と設定されてDBが更新される。