프로그래머(아마도 당신)와 디자이너가 함께 만드는 웹사이트를 만들어야 하는 상황에 직면하셨나요? 두 사람 모두가 일을 더 쉽게 할 수 있는 방법을 모르시나요? 답변을 드리겠습니다. FastTemplate을 사용하여 사이트를 더 쉽게 사용자 정의할 수 있습니다!
좋아요, 왜 FastTemplates를 사용해야 하는지 궁금하실 겁니다.
· 몇 초 안에 전체 사이트의 모양을 변경할 수 있습니다. · 추상적인 프로그래밍, 정크 HTML 코드 없음 · 디자이너는 모든 "모호한" 코드에 신경 쓸 필요가 없습니다. · 놀라울 정도로 빠릅니다. · 기존 템플릿을 재사용하기가 더 쉽습니다(일반 형식과 비교)
. 동일한 이름의 Perl 패키지(CPAN에서 찾을 수 있음)에서 파생됩니다. PHP 버전은 홈페이지(다운로드 주소: http://www.phpe.net/downloads/1.shtml)에서 다운로드할 수 있습니다. 클래스 파일(class.FastTemplate.php) 중 하나만 필요합니다.
먼저 템플릿을 사용하여 페이지를 생성하는 것과 단순히 에코하거나 인쇄하는 것의 차이점을 설명하겠습니다.
단순히 echo/print 방법을 사용하는 것은 짧은 스크립트를 작성하는 데는 좋지만 더 나은 구성과 사용자 정의에는 도움이 되지 않습니다. 반면에 템플릿을 사용하면 매개변수만 변경하면 다국어 사이트를 만들 수 있습니다. 그들은 당신이 해야 할 일에 더 관심을 갖도록 강요할 수 있습니다.
코딩을 시작하기 전에 생각하는 것을 두려워하지 마십시오. 시간이 좀 걸릴 수 있지만 프로젝트가 성장하면 비용이 보상받을 것입니다.
그렇다면 FastTemplate을 어떻게 적용하나요? 먼저 간단한 호출을 해야 합니다:
<?php $tpl=new FastTemplate ("path");
?>
모든 템플릿 파일이 저장된 디렉터리의 경로를 전달합니다. 매개변수 할당, 페이지 생성 등에 사용할 수 있는 개체를 반환합니다.
FastTemplate은 큰 페이지가 많은 작은 부분으로 구성되어 있다는 가정을 기반으로 합니다. 각 부분에는 고유한 이름이 있습니다. 가장 작은 부분은 고유한 이름을 가진 일반 텍스트 문자열에 할당하는 것입니다. 이 작업은 <?php를 통해 수행할 수 있습니다.
$tpl->할당(이름, "텍스트");
?>
완료합니다. 이제 템플릿 중 하나에 {NAME}이 포함되어 있으면 FastTemplate이 귀하의 의도를 알고 있습니다.
또한 FastTemplate은 템플릿을 호출하는 방법을 알아야 합니다. 연관 배열(연관 배열)을 전달해야 합니다.
배열)을 <?php $tpl->define() ?>
와서 힌트를 주세요.
<?php
$tpl->define(array(foo => "foo.tpl",
바 => "bar.tpl"));
?>
이러한 할당은 foo와 bar에 각각 다른 파일(foo.tpl 및 bar.tpl이라는 이름)을 제공합니다.
이제 FastTemplate이 foo 템플릿의 모든 {MACROS}를 해당 값으로 바꾸길 원합니다.
<?php
명령을 실행하여
$tpl->parse(PAGECONTENT, "foo");
?>
달성하기 위해. 이 명령은 "foo" 템플릿의 내용을 PAGECONTENT에 할당합니다. 물론 아직 끝나지 않았습니다. 템플릿 표시줄이 기본 페이지 정의이고 FastTemplate이 이를 교체해야 하기 때문입니다.
{PAGECONTENT} 매크로. 또한 다음과 같이 PAGETITLE에 값을 할당해야 합니다. <?php
$tpl->ass(PAGETITLE, "FooBar 테스트");
$tpl->parse(MAIN, "바");
?>
쉽지요? 이제 출력만 하면 됩니다: <?php
$tpl->FastPrint(메인);
?>
다음 세 파일은 실제 연습에 대한 자세한 설명을 보여줍니다. 실생활에서 이 기술 없이는 어떻게 살아갈지 모르겠습니다.
더 짧은 시간에 더 많은 작업을 수행할 수 있기 때문에 디자이너는 기뻐할 것이고 상사는 미소를 지을 것입니다.
bar.tpl <!-- bar.tpl -->
<HTML>
<HEAD><TITLE>특집 세계 - {PAGETITLE}</TITLE></HEAD>
<본문 BGCOLOR=검은색 텍스트=흰색>
<H1>{PAGETITLE}</H1>
{페이지 콘텐츠}
</BODY>
</HTML>
foo.tpl <!-- foo.tpl -->
분명히 아무 일도 일어나지 않았습니다. {NAME}님을 참조하세요.
데모.php3 <?php
include "class.FastTemplate.php3";
$tpl = new FastTemplate( ".");
$tpl->define(array(foo => "foo.tpl", bar => "bar.tpl"))
$tpl->ass(NAME, "me");
$tpl->할당(PAGETITLE, "환영합니다!")
$tpl->parse(PAGECONTENT, "foo");
$tpl->parse(MAIN, "바");
$tpl->FastPrint(MAIN);
?>
전체 테이블 만들기 또한 단일 행 템플릿에서 전체 테이블을 생성하는 방법을 보여주기 위해 간단한 예제도 작성했습니다. HTML 문서를 직접 수정할 필요가 없기 때문에 효율적입니다.
이미 정의된 고유 이름에 템플릿 내용을 추가하여 HTML 테이블을 만듭니다. 이 작업은 전화로 수행할 수 있습니다.
$tpl->parse() 시 템플릿 이름 앞에 "."를 추가하면 됩니다. <?php
//TPL1에 foo 템플릿의 내용을 할당합니다.
$tpl->parse(TPL1, "foo");
// TPL1 뒤에 템플릿 막대의 내용을 첨부합니다.
$tpl->parse(TPL1, ".bar");
?>
page.tpl
<HTML>
<HEAD><TITLE>특집 세계 - {PAGE_TITLE}</TITLE></HEAD>
<본문 BGCOLOR=검은색 텍스트=흰색>
<H1>{PAGE_TITLE}</H1>
{PAGE_CONTENT}
</BODY>
</HTML>
테이블.tpl
<TABLE>
<TR> <TH>이름</TH> <TH>크기</TH> </TR>
{TABLE_ROWS}
</TABLE>
table_row.tpl
<TR>
<TD>{파일 이름}</TD>
<TD>{파일 크기}</TD>
</TR>
yad.php3
<?php
include "class.FastTemplate.php3"
함수 초기화템플릿() {
전역 $tpl;
$tpl = new FastTemplate( ".");
$tpl->define( 배열( 페이지 => "page.tpl",
테이블 => "table.tpl",
table_row => "table_row.tpl" ) );
}
함수 ReadCurrentDirectory() {
전역 $tpl;
$handle = opendir( ".");
while($filename = readdir($handle)) {
$tpl->할당(파일 이름, $파일 이름);
$tpl->할당(FILESIZE, 파일 크기($filename));
$tpl->parse(TABLE_ROWS, ".table_row");
}
closeir($handle);
$tpl->parse(PAGE_CONTENT, "테이블");
}
기능 PrintPage($title) {
전역 $tpl;
$tpl->할당(PAGE_TITLE, $title);
$tpl->parse(최종, "페이지");
$tpl->FastPrint(최종);
}
초기화템플릿();
읽기현재디렉토리();
Printpage( "또 다른 데모");
?>
속도 토론
"좋아, 다 좋다. 그런데 내 사이트의 속도에 영향을 주지 않을까?"라고 말할 수도 있습니다.
아니, 사이트가 아마도 더 빨라질 것입니다. 한 가지 간단한 이유는 프로그래머로서 애플리케이션 설계와 코드 작성에 관심이 있기 때문에 코드가 더 효율적이고 동일한 작업을 더 쉽고 빠르게 처리할 수 있기 때문입니다. 따라서 프로젝트에서 FastTemplate 사용을 고려해야 하는 이유에 대해 위에 나열된 이유 목록에 또 다른 이유를 추가할 수 있습니다.
기존 웹사이트만 변환하려는 경우 성능 성공이 눈에 띄지 않을 수 있습니다. PHP에서 정규식 버퍼링을 사용하는 것이 좋습니다. 이 상황에서는 도움이 될 것입니다. FastTemplate은 모든 매크로에 정규식을 사용하기 때문에 각 정규식은 한 번만 컴파일되며 속도에 미치는 영향은 미미합니다.