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が更新される。