maple: Action の setter/getter を何とかしたい 2

できた。

 
BeanUitls.class.php-20050908.patch
Filter_Action.class.php-20050908.patch

前エントリの setter なしパラメータ渡しを実現するパッチ。当然既存の setter 渡しもそのまま可能です。かなり手抜き実装ですが、こんなとこだろう…

[Action]
logic = ref:Logic      ; これは既存でもする良くある書き方
name =                 ; ブランクなら Request "name" を Action の name へ代入
mail = param:email     ; Request "email" を Action の mail へ代入
tel  = 0123456789      ; 0123456789 を Action の tel へ代入
zip  = sess:zip        ; Request "zip" を Action の zip へ代入しつつ
                       ; Session へも zip で代入
pet  = param:yourPet,sess:pet    ; あわせ技。変態コードも許容する :) 
food  = meat,sess:hailFood         ; こんなことも余裕!
class Example
{
    // {{{ properties
    /**#@+
     * @access public
     */
    var $logic;
    var $name;
    var $mail;
    var $tel;
    var $zip;
    var $pet;
    var $food;
   ...

もはや setter method を書く必要がないぜ!

トラックバック(0)

このブログ記事を参照しているブログ一覧: maple: Action の setter/getter を何とかしたい 2

このブログ記事に対するトラックバックURL: http://hatotech.org/mt-admin/mt-tb.cgi/522

コメント(3)

すばらしい!
ただ、合わせ技を使った場合、リクエストパラメーターpetは、yourPetとpetの両方に入ってしまうのかな?
Actionの中に同じ意味を持つ変数が2つあるのが、背中がムズムズしてしまうA型なもので。
どうでもいいことだけど。。。

くまっち :

いや、Petの例は、

Action 内変数: pet
Request name: yourPet
session で保存する名称: pet

です。これで、仮に yourPet が dog の場合、
Action では $pet = dog になるし、$session->setParameter('pet', 'dog'); が実行されます。yourPet という変数は Action まで持ち込まれません。
html での tag name と、Action 内変数名が異なり、session にも保存したい場合の例ですね。

なるほど、勘違いしておりました。
ありがとうございます。

コメントする

このブログ記事について

このページは、が2005年9月 8日 17:31に書いたブログ記事です。

ひとつ前のブログ記事は「maple: Action の setter/getter を何とかしたい」です。

次のブログ記事は「おめでとう!maple 3.0.1 release」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01