setter/getterの省略
長い間やるといっておいてなかなかできてませんでしたが、3.1.0-beta1で実現しています。基本的にはhawkさんとbobchinさんからいただいたコードをベースに作っています。
今回の修正により、以下のようなリクエストがあった場合、
http://xxx.yyy.jp/index.php?name=kunit&pref=osaka
以下のようにリクエストパラメータと同じ変数名を準備するだけで、受け取ることができます。(ようやくsetterの呪縛が・・・)
<?php class Test { var $name; var $pref; function execute() { return 'success'; } } ?>
また、Viewフィルターにおいて、以下の記述({$action.[パラメータ名]})でActionクラスのパラメータが参照できます。
<html> <body> 名前: {$action.name}<br> 都道府県: {$action.pref} </body> </html>
また、今回の修正でデフォルトでSmartyの escape modifier をかけるようにしたので、いちいち「|escape」と書かなくていいです。逆にescapeを一旦はずしたい場合は、「|smarty:nodefaults」という記述が必要になります。
generatorとこのsetter/getterの省略対応によって、かなり開発は楽になると思います。(たくさんフォームがある画面でも苦にならない)