そのため、上司と私は、フォーム要素をレンダリングする最善の方法について合意に達することができませんでした。フォームは次のようになります。
<form class='myform'>
<input type=text class="username" />
<span><img class="question-mark-icon" src='icon.png' /></span>
<div class="tooltip"><p>Your username.</p></div>
// Other form elements here
</form>
1 つまたは 2 つの同じ要素を持つ 3 つのフォームがあります。現在、それらはヘルパー関数を介してレンダリングされているため、それを呼び出すusername()
と、その要素がツールチップと共にレンダリングされます。したがって、実際には、フォームの 1 つが次のようになります。
<form class='myform'>
<?php username(); ?>
// Other form elements here
</form>
それは問題なく動作すると思います。それがWordpressや私が読んだ他のコードで行われている方法なので、それがベストプラクティスだと思いました. しかし彼は、次のように OOP のようにオブジェクト指向にするべきだと主張しています。
class FormElements {
public function username() {
echo '<input type=text class="username" /><span><img class="question-mark-icon" src='icon.png' /></span>
<div class="tooltip"><p>Your username.</p></div>';
}
}
username
したがって、明らかに入力をレンダリングするには次のようになります。
$formEls = new FormElements();
$formEls->username();
したがって、次のようなヘルパー関数に配置するのではなく、そのようにする方が良い/悪い理由を誰かが明確に教えてくれます:
function username() {
echo '<input type=text class="username" /><span><img class="question-mark-icon" src='icon.png' /></span>
<div class="tooltip"><p>Your username.</p></div>';
}
私の主張は、単純なヘルパー関数を使用して実行できるのに、単一の要素をレンダリングするためだけにクラスを作成するのはばかげているということですか? また、OOP の原則を正当化するものではありません。しかし、彼は私を信じようとせず、私の主張/理解を裏付ける権威のある記事または何かを彼に指摘するように私に頼みました.
編集:
また、クラスに配置しても問題ない理由を教えていただけますか? 適切なオブジェクト モデルを定義できませんでした。私は通常、明確なプロパティとアクションを持つオブジェクトのクラスを作成します。単一のフォーム要素の場合、クラスでラップする必要がある理由がわかりません。