2013-02-15 63 views
5

因为我们知道HTML应该是纯HTML,所以使用这些类是否有利于性能或安全问题。我应该在标准HTML上使用表单助手吗?

实施例:

在笨框架:

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

称为

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

哪个更好?

+4

我倾向于避免它们,因为我使用了一个自定义模板系统,它允许我将所有视图文件保留为HTML,这使得它们更易于设计人员访问。如果你想使用内置csrf标记的codeigniters,那么你将不得不使用表单助手来打开/关闭表单,但除此之外它大部分都是根据你自己的偏好设置的。 – Jeemusu 2013-02-15 04:46:48

+2

@Jeemusu您不需要使用CSRF标记的表单助手,因为您可以这样做:'' – 2013-02-15 08:18:08

+0

@crypticツ - 希望我早点知道:P干杯。 – Jeemusu 2013-02-15 08:20:16

回答

4

菲尔鲟鱼博客复制:
抽象额外的一层,结合辅助扩展/压倒一切使得它很容易改变的逻辑的简单位整个应用程序的输出以最小做文章。

解释一下,我会用一个例子。

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

首先你会看到标准HTML办法做到这一点,与用于创建链接到形式的行动site_url()功能。其次,你会看到form_open()标签 - 在这个例子中,它的标签也更短,wahey!

我想要一种方法来设置我所有表格中的accept-charset="UTF-8"以帮助保留我的数据全部UTF-8 in CodeIgniter。 如果我只是使用HTML,那么我将不得不通过所有我的表格,并补充说,在我自己,这将浪费时间,我可以在酒吧度过。

相反,由于CodeIgniter允许您扩展帮助程序,因此我只是在application/helpers/MY_form_helper.php中做了我自己的稍微修改的form_open(),其中包含此逻辑。
由于我使用PHP来包装我的有用数据,我可以做一个简单的更改并更新我的所有标签。

主要问题是人们正在看着这些帮助函数,并将它们看作纯粹的不同语法。

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

2

这是一个很好的问题。我认为最终归结于个人偏好。就我个人而言,我不喜欢使用表单助手,但我当然可以看到使用它们的好处,如果我正在处理大型项目,我会尝试使用它们。因为像Phil Sturgeon一样,当你想对所有表单域进行网站更改时,它就更容易了。

虽然我很想看看使用表单助手函数是否会影响性能。当然,使用PHP来生成HTML的性能要比仅仅正常写HTML的性能要好?