PEAR() 레퍼런스는 디자인 + 코딩 부분을 구별하여 제작할 수 있어서 좋다.
허나 블럭을 잘 알아야 한다.

아래 소스를 보자. 다음 멤버 테이블에 카드 부분을 피어로 뿌리는 소스이다.

$sql = "SELECT * FROM MEMBER ";

$res = $db->query($sql);
if (PEAR::isError($db)) {
die($db->getMessage());
}


while ($res->fetchInto($row)) {
if (!$tpl->setCurrentBlock("row")) Error("setCurrentBlock"); // 블럭 시작 부분이다.
$tpl->setVariable("CARD"      , $CARD);

$tpl->parseCurrentBlock("row");                                    // 블럭 끝 부분이다.
if (!$tpl->parse("row")) Error("parseCurrentBlock");         // 블럭의 에러를 검출하는 부분
}

   $tpl->show(); // 블럭한 부분을 화면에 보여준다.

다음은 디자인 부분을 보자
<html>
<link href="../css/global.css" rel="stylesheet" type="text/css">

<table width="720" cellpadding="5" cellspacing="1" bgcolor="cccccc">
  <!-- BEGIN row --> // 블럭 시작 부분
  <tr>
    <td width="80" align="center" bgcolor="ffffff"> {CARD}</td>

  </tr>
  <!-- END row -->  // 블럭 끝 부분
</table>
</html> 

거두 절미 하게 필요한 부분만 남기고 지워버렸다. 위에서 보는것과 같이 블럭 시작 부분에서는 row라는 변수로 파싱을 하기 위해 소스에 진하게 칠한 부분과 이름을 동일하게 해야 값이 올바르게 출력되는것을 알 수 있다.
이제까지 피어 프로그래밍에 대해서 공부해 보았다. 사실 PHP는 겉 핧기 식으로 공부했기 때문에 완벽하게 잘하진 못한다. 하지만 배우면 배울수록 재밌는것 같다.
물론 웹에서 가장 중요한 것은 프로그래밍 기술도 필요하지만 정규화된 데이터베이스 설계와 해당 데이터베이스 테이블에 값을 얼마나 효율적으로 보여주느냐에 따라서 실력 차이가 나는것 같다.
공부를 하면서 느끼는 것이지만 역시 학교다니던 시절 자료구조, 알고리즘 파트가 얼마나 중요한 과목인지 다시한번 생각하게 만드는 계기가 된 것 같다. 







'웹 프로그래밍 > PHP' 카테고리의 다른 글

소켓통신  (0) 2011.12.14
특정 태크 제거 소스.  (0) 2011.12.14

+ Recent posts