作者clifflu (缺钱啦 @@)
看板PHP
标题Re: [心得] 基本 php 书写习惯
时间Sun Nov 20 01:37:12 2005
※ 引述《appleboy46 (我是道明柏毅)》之铭言:
: : 3. Template engine 应用则用, 当省则省.
: : 不是每个专案都应该要套这东西上去, 但我也不认为 coder 能因此而不学 XD
: : 对不使用样版引擎的 php script 来说, 应尽量使得程式码与 html 分开,
: : 并适当在此加上注解, 以便日後修改除错.
: 我想问问这点
: 请问如果不用样板 怎麽把程式码跟 html分开
: 写PHP 我都是2个混在一起 最近想学smarty
就只能浪费记忆体, 把该查的东西先查完再进入 html 阶段啊 XD
举个例来说说一个简单, 不使用样版引擎的分离法.
<!DOCTYPE ... > (第一行, 理由我以前写过了)
<?php
// segment 1, 处理输入
$inData = $_POST['data'] ; // 传进来的资料
$inHead = $_POST['head'] ; // 传进来个头
$inDB = $_POST['db'] ; // 传进来的资料库名称
// segment 2, 主要运算
require_once("mydb.inc.php") ; // 使用 PEAR::DB 我写的一个小档
require_once("ezStrProc.inc.php") ; // 常用的字串处理
$myDB = getDB(doStr($inDB)) ;
$qStr = "select * from MYTBL" ;
$ret = $myDB->query($qStr) ;
// 好吧, $myDB, $qStr, $ret 也都是习惯不加注解的变数名称 XD
$outbuff = array() ; // 这个也是
while($ret->fetchInto($raw))
array_push($outbuff, $raw) ;
?>
(一堆 html)
<table>
<tr><th>aa</th><th>bb</th></tr>
<?php
reset($outbuff) ;
$outstr = "" ; // 又是一个习惯上不加注解的变数 ^^;;
foreach($outbuff as $key=>$val)
$outstr .= "<tr><td>$key</td><td>$val</td></tr>\n" ;
echo $outstr ;
?>
</table>
(又一堆 html)
所以 html 堆里头, 不会有关於程式逻辑的东西.
而这样的作法, 其实也就很接近 template engine 所希望弄到的事情.
对於我这样 show 表格的方式还有意见的话, 网路上其实也都抓得到各种的
array_display, form_generator 一类的东西 ^^;;
不然你以为样板引擎是怎麽做到这些事的 :p
个人觉得最难看的程式就是那种没事杂一堆 <?php echo $aaa;?> 在 html 里的
所以如果情况许可, 我会习惯把 <?php 都放在该行的第一格, 省得除错伤眼 ^^;;
--
鬼压床怎麽办
骑上去啊
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 222.157.136.54
※ 编辑: clifflu 来自: 222.157.136.54 (11/20 01:41)