作者tanson (Flash)
看板PHP
标题Re: [请益]该如何避免HTML掺杂PHP写法
时间Fri Oct 5 00:31:02 2012
※ 引述《PTTLSboy (阿铯)》之铭言:
: <select>
: <? for($i=0;$i<$a;$i++){ ?>
: <option> (略) </option>
: <? } ?>
: </select>
: 要如何避免以上这种 HTML+PHP 混在一起的写法呢???
: 因为有不得不用PHP跑回圈+HTML或JAVASCRIPT的需求
: 感谢!!
写成物件导向的方式如何,例如:
class InputGenerator
{
static public function select($name, $value, $attr, $options)
{
$html = '<select name="' . $name . '">';
foreach($options as $key => $option) {
$selected = '';
if ($value == $key) {
$selected = 'selected';
}
$html .= '<option value="' . $key . '" ' . $selected . '>';
$html .= $option;
$html .= '</option>';
}
$html .= '</select>';
return $html;
}
}
暂且略过$attr html属性设定的参数
使用时只要 require class至页面,然後如以下方式
InputGenerator::select('name', '1', null, $enums);
便可产生所需的下拉选单
不然就是使用framework
像是Zend Framework 的view helper
让页面也乾净许多
且就不必常使用for回圈产生元素
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.45.92
1F:→ MOONRAKER:这明显是完全不跟人配合,自己一个人做网站的写法。我才 10/05 01:00
2F:→ MOONRAKER:不要在php内产生HTML... 10/05 01:00
3F:→ tanson:我想,就是因为是teamwork才更需要使用物件导向 10/05 01:16
4F:→ tanson:当teamwork时,如果可以将code缩减,并让人清楚的知道每个 10/05 01:18
5F:→ tanson:物件的职责,不仅可以缩短project开发时间,日後也更好维护 10/05 01:19
6F:→ tanson:M大不喜欢由php产生html的目的为何,愿闻其详 10/05 01:21
7F:→ tanson:不要忘了ZF的view helper也是类似做法 10/05 01:23
8F:→ tkdmaf:这叫滥用物件好吗?物件不是拿来这样搞的。 10/05 07:46
9F:→ tkdmaf:如果你的SAMPLE CODE的内容是另外读取HTML页面的话。 10/05 07:47
10F:→ tkdmaf:我认为那才会是正解。 10/05 07:47
11F:推 B9: 这不算滥用物件啊,就只是个 static method 10/05 08:05
12F:→ B9: 跟设计一个 input_generator_select 是一样的东西 10/05 08:05
13F:→ B9: static function 10/05 08:06
14F:嘘 tkdmaf:我才不管他方法,而是他制造出一种困扰。 10/05 08:06
15F:→ tkdmaf:事实上我连ci的input相关功能都很少用。 10/05 08:08
16F:→ tkdmaf:在基於和网页设计师的配合上 10/05 08:08
17F:→ tkdmaf:让他们看得懂HTML而不是制造看不同的功能比较重要。 10/05 08:09
19F:嘘 tkdmaf:类似!但我不能先做好htmlentities再放进阵列? 10/05 08:26
20F:→ tkdmaf:还有刚刚洗澡我才想到,form相关的ci是写成函式。 10/05 08:27
21F:→ tkdmaf:而不是物件。 10/05 08:27
22F:→ tkdmaf:乾乾净净的纯html显示是工程师能带给网编人员的方便。 10/05 08:28
23F:→ tkdmaf:而不是给他们感到困惑。 10/05 08:29
24F:→ tkdmaf:除了必要重覆的php code,我绝少在view中做其他处置。 10/05 08:29
25F:→ mervynW:我看到这种code我会叫过来念一顿. 要抓html&css问题还要 10/05 09:49
26F:→ mervynW:到php code里找,当大家太闲啊. 10/05 09:50
27F:→ tkdmaf: ^^^^^^^^^^^^XD! 10/05 10:01
28F:→ Gakun:其实我觉得困扰还好 只是在於整个团队有没有明确的文件规范 10/05 10:04
29F:→ tkdmaf:但如果都是标准HTML显示……不用文件规范吧。 10/05 10:11
30F:→ tkdmaf:难不成他的HTML和我的HTML规则不一样? 10/05 10:11
31F:→ MOONRAKER:这种规范就是允许frontend来改我程式,我一定反弹。 10/05 11:17
32F:→ tkdmaf:如果你的code是让我无所适从,我会让你看看砍掉重练的骄傲 10/05 12:02
33F:→ mervynW:我跟frontend讨论过, 他们不爱temp的回圈 10/05 12:08
34F:→ tkdmaf:不爱的话就把回圈放回controller或是model来处理。 10/05 12:24
35F:→ tkdmaf:变成只剩下变数显示的纯view了。 10/05 12:24
36F:→ tanson:这样的话跟我的InputGenerator物件差别在哪= =? 10/05 12:38
37F:→ mervynW:不,传json给forntend, 他们用js组 10/05 13:04
38F:→ tkdmaf:嗯!用js组的好处就是回圈不吃伺服器资源吧! 10/05 13:31
39F:推 mervynW:还有User看到画面快,虽然没有内容 10/05 14:04