ページプロパティ参照方法
Ficusのpagesはページクラスとテンプレートが一対一対応.Teedaに同じ.でもTeedaを知る以前からそういう仕組みだった.
確かpagesを作り始めたのは・・・ノートを見てもわからなかった・・・orz
きっと何かを見てまねしたんだと思うけど.
で,最近Teedaに影響されてページのプロパティを定義すると,
- テンプレートに自動でAssign
- POST/GET/SESSIONの値を自動でプロパティに代入
してくれるようにした.
でページが次のように定義されていて
<?php class Soya_TestPage extends Ficus_AbstractPage{ /** * @Required * @Regex(pattern="[0-9]") */ protected $testOne; protected $testTwo; /** * @Bean("Soya_TestBean") */ protected $testThree; public function doDefault(){ } } ?>
Soya_TestBeanがこうなっている場合
<?php class Soya_TestBean extends Ficus_Bean{ protected $id; protected $name; } ?>
テンプレートからは
<form> <input type="edit" name="testThree.id"/> <input type="edit" name="testThree.name"/> </form> {$testThree->id()} {$testThree->name()}
としてアクセスできる.値へのアクセスはことによったら
{$testThree.id} {$testThree.name}
とするかもしれない.Smartyだとオブジェクトの入れ子構造にアクセスできないから.
こうするとだいぶScaffold周りが簡単になるような気がする.
なぜPHPにはMapleやSymphonyやなんやらいっぱいFrameWorkがあるのにそれを使わないのかって?馬鹿になるからです.もとい楽しいからです.