不用模板,也要保持HTML和PHP尽量独立

桄欣 posted @ 2008年7月25日 20:28 in PHP经验谈 with tags 模板 , 6620 阅读

页面上有的按钮是需要根据当前操作者的权限决定是否Disable掉的。昨天看了三儿写的代码,他把Input标签的最后一部分写在一个函数中echo出来,函数中包含对当前用户权限的判断,于是乎有了以下代码:

<?php
function disabledbutton($actionName,$user){
        if(PrivilegeController::mayI($actionName,$user)){
                echo ">";
        }
        else{
                echo 'disabled="disabled">';
        }
}
?>

<input type="button" value="Change" <?php disabledbutton('change', $curUser);?>
<input type="button" value="Add" <?php disabledbutton('add', $curUser);?>

这样写代码的一个大问题在于,HTML和PHP代码都被拆散了,代码的可维护性大大降低。试想如果10天休假之后,在回来看这个页面的代码,修改其中的一小部分,会是一种什么情形?

大家都知道使用模板技术能让逻辑和界面分离,其实模板技术本身执行的也就是标签替换的操作。不使用模板的时候,我们自己也可以通过调整PHP代码和HTML的书写方式,让逻辑代码和页面代码尽量分离,并且易于阅读:

 

<?php
$disableChange = PrivilegeController::mayI('change',$curUser)?'':'disabled="disabled"';
$disableAdd    = PrivilegeController::mayI('add',$curUser)?'':'disabled="disabled"';
?>

<input type="button" value="Change" <?=$disableChange?> >
<input type="button" value="Add" <?=$disableAdd?> >

这样的书写方式,保证了页面结构的完整性,而且逻辑处理代码全部集中在页面首部,更易于修改和维护。

Head_small
说:
2008年8月01日 20:31

的确很有道理,学习模板技术其实就是为了学习模板思想,代码不能仅仅是要功能实现,还要有更多的要求,学习学习


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter