PHP > メモ > フォームの値にアクセスするクラスを思案中

2006年01月27日

自身の勉強を兼ねてPHPのフレームワークを作ってる。 コンセプトは、

「PHPのPHPによる自分の為のフレームワーク」

何てことはない、自分で使いやすい様に作ってるだけ。

まだまだ未熟者なのでコードが汚かったり、エラー処理が曖昧だったりするけど、 とりあえず作ってます。

で、本題。
フォームのアクセスに簡単にアクセス出来るようなクラスが作りたいんだけど、 イマイチいい方法が浮かばない。

MojaviやらMapleEthna を参考にしてみるけれど、どれももう一歩足らず。

イメージとしてはEthna が近いかな、例えば


class sample extends form{

var $form = 
array(
		/*部品名 => array(
			'element' => 'htmlタグの要素',
			'property' => array(
				'htmlタグのプロパティ' => 'プロパティの値'
			)
		),*/ 
		'name' =>array(
			'element' => 'input',
			'property' => array(
				'type' => '',
				'value' => '',
				'size' => '',
				'tabindex' => '',
				'accesskey' => '',
				'maxlengh' => '',
				'checked' => '',
				'disabled' => '',
				'readonly' => '',
				'accept' => ''
			)
		),
		'address' => array(
			'element' => 'select',
			'property' => array(
				'size' => '',
				'multiple' => '',
				'disabled' => ''
			),
			'option' => array(
				'list' => array(
					'name' => 'value'
				),
				'selected' => array(
					'name' => 'value'
				)
			)
		),
		'text' => array(
			'element' => 'textarea',
			'property' => array(
				'name' => '',
				'cols' => '',
				'rows' => ''
			),
			'value' => ''
		)
	)
}

みたいな感じで、実際使うメソッドが書かれたformクラスを継承して、 フォーム名やプロパティやらなんやらを書く。

MVCフレームワークでいうところのModelでget()やset()を使って値にアクセスしつつ、 Viewではdisplay()みたいなメソッドでフォーム部品をhtml出力したい。

例を見てもらえば分かるとおり、連想配列でフォームを定義した時フォーム名やプロパティが多いと、 見難くなるのが問題。


$name = 'name'; //フォーム名
setElement($name , 'input'); //<input name="name">
setProperty($name , 'type' , 'text');//<input name="name" type="text">
setProperty($name , 'size' , '10');//<input name="name" type="text" size="10">

の様にすれば多少は見易くなると思うが、記述量が多くなるしパフォーマンス的にもどうなんだろ? setメソッドでプロパティを指定するなら、共通のプロパティも一緒に定義できるし便利だと思うんだが。

それ以上に問題なのが、こんな時間に起きてる事orz 朝起きなくていいと分かると夜更かししてしまう悪い癖。 という訳でおやすみなさい。

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

コメント

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


投稿する

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


トラックバック

トラックバックURI


一覧

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