wasup
PHP프레임워크 TEMPLATE_ (템플릿 언더바) 본문
반응형
1. 환경설정
템플릿언더바는 PHP 4.1.0 이상에서 작동
var $template_dir = '_template';
var $compile_dir = '_compile';
2. 템플릿 태그
{}
<!--{}
{}-->
<!--{}-->
//템플릿 파일 내에서 템플릿엔진이 해석할 위치를 표시함.
//위 네 가지 모두 유효한 템플릿 태그임
3. 템플릿 파일 정의, 템플릿 변수 할당, 출력
//메서드
define() //사용할 템플릿 파일의 아이디를 정의
assign() //템플릿 변수에 값을 할당
print_() //출력
//명령어
= //템플릿변수의 값을 출력
{= template_variable}
템플릿 변수의 네이밍 규칙
한글 사용 가능
'$' 사용 불가
' ' 로 시작하는 템플릿 변수는 별도의 용도를 가짐
템플릿 파일을 define()메서드로 정의할 때, $template_dir속성으로부터 상대경로를 지정함.
4. 루프
@ //루프의 시작
: //루프가 돌지 않을 때(옵션)
/ //루프의 끝
//사용법
{@ loop_id} //루프의 시작
{:} //루프가 돌지 않을 때(옵션)
{/} //루프의 끝
루프로 할당할 배열을 직접 작성한 경우
index.php
<?php
include 'Template_.class.php';
$tpl = new Template_;
$tpl->define('index', 'index.tpl');
$loop = array(
array(
'name' =>'banana',
'color'=>'yellow',
),
array(
'name' =>'apple',
'color'=>'red',
),
);
$tpl->assign('list', $loop);
$tpl->print_('index');
?>
index.tpl
<table>
<!--{@ list}-->
<tr><td>{list.name}</td><td>{list.color}</td></tr>
<!--{/}-->
</table>
output
<table>
<tr><td>banana</td><td>yellow</td></tr>
<tr><td>apple</td><td>red</td></tr>
</table>
5. 하위템플릿 인클루드
# //하위템플릿파일 인클루드
//사용법
{# file_id}
https://tpl.xtac.net/tutorial1/
5. 표현식
++ -- ?: , >>> 할당연산자 예약어연산자 등을 제외한 연산자를 사용하여
자바스크립트 문법을 따르는 표현식을 자유롭게 작성
6. 이스케이프
\ //템플릿코드를 그대로 출력
예제)
{\@ abc}
{2 + 2}
{\ 2 + 2}
{\\ 2 + 2}
{2 + (2} //형식이 바르지 않은 경우
{\ 2 + (2 }
예제의 결과)
{@ abc}
4
{2 + 2}
{\ 2 + 2}
{2 + (2 }
{\ 2 + (2 }
8. 루프-예약변수
8-1. index_ size_
//예약변수
index_ //0부터 시작, 루프가 반복할 때 1씩 증가
//예약변수
size_ //루프의 전체 반복 회수
//index.tpl
<div>num of list: { list.size_ }</div>
<!--{@ list}-->
<div>{ list.index_ + start }th. { list.title }</div>
<!--{/}-->
//output
<div>num of list: 3</div>
<div>10th. I Wish..</div>
<div>11th. Love Revolution 21</div>
<div>12th. The Peace</div>
//size_는 해당루프 밖에서 사용 가능
//해당루프 밖에서 사용할 때는 {.size_}처럼 루프 아이디를 생략할 수는 없음
8-2. key_ value_
key_ //루프로 할당된 배열의 키
value_ //루프로 할당된 배열의 값
//index.php
<?php
include 'Template_.class.php';
$tpl = new Template_;
$tpl->define('index', 'index.tpl');
$loop = array('apple'=>'red', 'banana'=>'yellow', 30 =>'unknown');
$tpl->assign('fruit', $loop);
$tpl->print_('index');
?>
//index.tpl
<!--{@ fruit}-->
<div>{fruit.index_} - {fruit.key_} - {fruit.value_}</div>
<!--{/}-->
<div>num of fruit: {fruit.size_}</div>
//output
<div>0 - apple - red</div>
<div>1 - banana - yellow</div>
<div>2 - 30 - unknown</div>
<div>num of list: 3</div>
9. 분기 - if
//?, :, /의 의미
? //-> if
: //-> elseif, else
/ //-> endif
//?, :, /의 사용법
{? expression}
{: expression}, {:}
{/}
분기와 분기, 분기와 루프는 자유롭게 중첩하려 사용 가능
10. 배열
배열자체를 하나의 템플릿 변수로 할당할 수 있음.
인덱스배열, 연관배열, 다중배열 모두 가능.
https://tpl.xtac.net/tutorial2/
이어진 글-
2022.08.11 - [IT etc] - TEMPLATE_ (템플릿 언더바) / 선언-할당-출력
반응형
Comments