define()* 다음    목록
void define( array id-file )
void define( string file_id, string file )
템플릿 파일에 아이디를 부여합니다. 파일아이디는 템플릿변수의 네이밍규칙을 따르고, 파일경로는 $template_dir 속성값을 기준으로 한 상대경로 입니다.
아래 세 개의 코드는 같은 결과를 가집니다.
index1.php
$tpl->define(array(
    'main'   =>'main.tpl',
    'layout' =>'layout.tpl',
));
index2.php
$tpl->define(array(
    'main'   =>'main.tpl',
));
$tpl->define(array(
    'layout' =>'layout.tpl',
));
index3.php
$tpl->define('main', 'main.tpl');
$tpl->define('layout', 'layout.tpl');
같은 파일 아이디를 중복 정의했다면, 나중에 정의한 쪽이 유효합니다. 또한 사용되지 않을 템플릿파일을 정의하여도 오류를 일으키지는 않습니다.
Note:
define() 메서드는 파일아이디와 파일경로명을 매핑하는 단순한 기능을 수행합니다.
  정적 텍스트 정의
파일 아이디 앞에 '!' 를 붙이면, 템플릿 변환 파일을 템플릿 헤더만 제외하고 빠르게 읽어서 출력합니다. 동적으로 데이터를 할당할 수는 없지만, 변환된 파일을 읽기 때문에 매크로필터 가 적용되며, 템플릿 내에서 정의한 매크로와 필터도 유효합니다.
index.php
$tpl->define(array(
    '!main' =>'static.tpl',
    'layout'=>'layout.tpl',
));
layout.tpl
...

{# main}

...
물론 이 옵션은 템플릿을 분할했을 때도 유효합니다.
index.php
$tpl->define(array(
    '!head'=>'layout.tpl?head',
    'body' =>'layout.tpl?body',
));
$tpl->print_('head');
...
'! head' 와 같이 파일아이디를 지정하는 따옴표 내에 공백은 허용되지 않습니다.
  PHP 파일 정의
파일 아이디 앞에 '>' 를 붙이면, PHP 파일을 인클루드할 수 있습니다. 인클루드할 PHP파일의 경로는 절대경로나 실행파일을 기준으로 하는 상대경로를 지정합니다.
index.php
$tpl->define(array(
    '>main' =>$_SERVER['DOCUMENT_ROOT'].'/some-dir/other-source.php',
    'layout'=>'layout.tpl',
));
layout.tpl
...

{# main}

...
  목록 다음 
 
Since 2003-03-03 hosted on vultr.com