所以我的老板和我无法就如何最好地呈现表单元素达成一致。我们的表格如下所示:
<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>
我们有三种形式,它们具有一两个相同的元素。现在它们是通过辅助函数呈现的,所以如果我调用username()
它,它将呈现该元素及其工具提示。所以实际上我们的一种形式是这样的:
<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 原则也不公平。但他不相信我,并要求我向他指出一篇权威文章或任何有权威的东西来支持我的主张/理解。
编辑:
你能告诉我为什么可以把它放在一个类中吗?我无法为它定义合适的对象模型。我通常为具有明确属性和操作的对象创建类。对于单个表单元素,我不明白为什么要将它包装在一个类中。