我应该使用表单助手还是标准HTML?

5

使用这些类有助于提高性能或解决安全问题吗?我们知道HTML应该是纯HTML。

例如:

在Codeigniter框架中:

 echo form_input(array('name' => 'one'));

被称为

<input type="text" name="one"/>

哪个更好?


4
由于我使用自定义模板系统,可以将所有的视图文件保存为纯HTML格式,这使得设计师更容易进行访问,因此我倾向于避免使用其他框架。如果您想使用CodeIgniter内置的CSRF令牌,则必须使用表单助手来打开/关闭表单,但除此之外,大多数情况下都取决于您自己的喜好。 - Jeemusu
2
@Jeemusu,你不需要使用表单助手来处理CSRF令牌,因为你可以直接这样做:<input name='<?php echo $this->security->get_csrf_token_name(); ?>' type='hidden' value='<?php echo $this->security->get_csrf_hash(); ?>' /> - cryptic ツ
@cryptic ツ - 希望我早点知道这个:P 干杯。 - Jeemusu
2个回答

4

摘自Phil Sturgeon博客:
额外的抽象层,结合助手扩展/覆盖,使得在应用程序输出中更改简单逻辑变得非常容易,而且不会引起太多麻烦。

为了说明,我将使用一个例子。

<form action="<?php echo site_url('controller/method'); ?>" method="post">
vrs
<?php echo form_open('controller/method');

首先,您将看到标准的HTML方式来完成它,使用site_url()函数创建表单操作的链接。其次,您将看到form_open()标签 - 在这个例子中,它也更短了!
我想找一种方法在所有的表单中设置accept-charset="UTF-8",以帮助保持我的数据都是UTF-8格式的(CodeIgniter中的UTF-8)。如果我只使用HTML,那么我就必须逐个添加,这会浪费我在酒吧度过的时间。
相反,由于CodeIgniter允许您扩展帮助程序,我只需在application/helpers/MY_form_helper.php中制作自己略微修改的form_open(),其中包含此逻辑。因为我使用PHP来包装我的有用数据,所以我可以进行简单的更改并更新所有的标记。
主要问题是人们正在查看这些HTML帮助程序函数,并将它们纯粹视为不同的语法。

查看完整文章请访问:
http://philsturgeon.co.uk/blog/2009/12/Why-CodeIgniter-HTML-helper-functions-rock


2
这是一个好问题。我认为最终它取决于个人偏好。个人而言,我不喜欢使用表单助手,但我可以看到使用它们的好处,并且如果我在开发大型项目时会尝试使用它们。因为像Phil Sturgeon说的那样,当你想要对所有表单字段进行站点范围的更改时,这将变得容易得多。
尽管我很想知道使用表单助手函数是否会影响性能。肯定比正常编写HTML有一定的性能损失,因为需要使用PHP来生成HTML。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接