我不是一个使用插件或任何东西,所以我现在试图避免像Zend这样的东西,但我想看看用PHP函数创建“模板”是否是一个好习惯? 我现在忘记了很多PHP,一旦得到他的回答就会重新回到它,但我在想这样的事情:
PHP
function input($type, $label, $id, $class) {
echo "<div>";
echo "<input type=" .$type. " class=" .$class. " id=" .$id. />";
echo "<label for=" .$id. ">".$label."</label>";
echo "</div>";
}
HTML
<div class="wrapper">
<?PHP input("text", "Username", "username", "input"); ?>
</div>
当然这个代码需要根据我的需要进行调整,但我想知道它是否会被认为是好的做法?或者我应该偏离做这样的事情?
答案 0 :(得分:7)
我看到了评论,我希望你不要把我钉在十字架上,说大多数人会同意可重用性:返回价值而不是回应它
function input($type, $label, $id, $class) {
// create the div here ...
return $divString;
}
然后按照您的意愿处理结果...
<div class="wrapper">
<?PHP echo input("text", "Username", "username", "input"); ?>
</div>
或以其他方式使用
$formElements = input("text", "Username", "username", "input") . input("password", "Password", "password", "input");
答案 1 :(得分:2)
我认为这是一种很好的做法,但也有一些改进。更好的方法是使用一个类。这样,您可以轻松配置,克隆,传递和扩展输入,并实现复杂的输入类型。
另一种方法是接受包含元素的每个HTML属性的键值数组,并以给定的元素类型输出它们。
myElement = element(elementType, attributes); //Attributes: type=input, value=myvalue...
第二个重要的改进是正确地逃避每个参数内部的内容以避免XSS注入。
所有这些通常都被大多数框架所涵盖,并且可以轻松复制而不必在项目中包含整个框架。
答案 2 :(得分:1)
这是我们称之为“助手”的东西。所以是的,这绝对是一个很好的做法。但所有PHP框架都实现了这一点。你可以试试CakePHP!