PHP > メモ > フォームクラスの仕様をメモ

2006年02月05日

仕様がだいたい固まってきたのでメモ。

ここ数日考えてたアプリケーション側から呼び出すメソッド。
getHidden()
mapping()
renewal()
validate()

getHidden()

現在の値を元に<hidden>タグを生成して返す。 フォームの確認画面で非常に便利だと思う。

renewal()

html生成用のフィールドである$this->property['value']をユーザーリクエストの値を元に更新する。
ユーザーに再入力を求める場合を考慮して、入力チェックをクリア出来ないリクエストであろうが関係無しに更新。 ただし、disabledを指定されてる場合を除き<input type"checkbox">・<input type"radio">はvalueには触らずにcheckedプロパティを、 <select>タグはselectedプロパティを追加する。

mapping()

ユーザーリクエストの値を標準で提供される入力チェックを行った後、 $this->reqValueに入れる。
入力チェックをクリアして$this->reqValueに値を格納出来れば、 フィールドである$this->mappingにtrueを定義、 失敗ならfalse。
mapping()は一回しか実行できない。 というのは、mapping()をコールした後に$this->reqValueに何らかの変更を加えた場合に、 誤って再度mapping()をコールすると変更が無効になる為。 二回目以降のmapping()はコールされても実行されない。
また、因数にfalseを指定されない限り、renewal()もコールする。

validate()

最初にmapping()をコールして、$this->reqValueに値が格納された事を確認してから、 ユーザ定義の入力チェック関数、フィルター関数をコールして$this->reqValueに値を定義し直す。 mapping()同様に二回目以降コールされても実行しないようにする。
成功すれば$this->validateフィールドにtrueを定義。
もし、mapping()をコールした後に$this->reqValueに対して何らかの処理を行いたいのであれば、 mapping()を明示的にコールした後、ユーザ定義の処理を行ってからvalidate()をコールする必要がある。

フィールド

dataType:デフォルトはstring。他にはintやfloat等を定義する。
min:mapping()コールの際にチェックする最小文字数。数字なら最小値。
max:mapping()コールの際にチェックする最大文字数。数字なら最大値。
pregPtn:preg関数で使用できる正規表現パターン。
ess:必須項目ならtrue、そうでなければfalse。
mapping:mapping()が成功したならtrue、そうでなければfalse。
validate:validate()が成功したならtrue、そうでなければfalse。

validate()で実行するユーザ定義の入力チェックとフィルター処理をどこで定義するかを最後まで悩んだけど、 依存性をなくす為に特定のクラスやメソッドで定義せずに普通にユーザ定義関数を使うことにした。 フレームワークに組み込む時はcheckクラスやfilterクラスを定義して使う予定。
こんな感じでいいかな。 まだrenewal()しか書いてないけど、集中してやれば1〜2時間で書けると思う。

最近つくづく思うのだが、コードを書いてる時間よりも設計や仕様を考えてる時間の方が断然長い。 設計や仕様が決まっててコードを書き始めればあっという間に書けるんだけど、 書き始めるまでが時間かかる。
これって単に私の能力が低いだけなのか、それともコード書く人はみんなそうなんだろうか? どっちなんだろう?

posted by 37to at : 02:37 | コメント (0) | トラックバック (0)

コメント

この記事に対するコメントはまだありません。


投稿する

投稿者情報を保存しますか?


トラックバック

トラックバックURI


一覧

この記事に対するトラックバックはまだありません。