스마트 템 플 릿 엔진 기초 지식 입문

본 고의 실례 는 스마트 템 플 릿 엔진 의 기초 지식 을 서술 하 였 다.모두 에 게 참고 하도록 공유 하 다.구체 적 으로 다음 과 같다.
기본 개념
1.뮤 직 비디오 가 무엇 입 니까?
화면 음악 c 는 개발 모델 로 핵심 사상 은 데이터 의 입력,데이터 의 처리,데이터 디 스 플레이 의 강제 분리 이다.
2.스마트 란 무엇 인가?
smarty 는 phop 의 템 플 릿 엔진 이다.더욱 명확 하 게 말하자면 개발 자가 프로그램 논리 와 페이지 디 스 플레이 를 더욱 잘 분리 하 는 데 도움 을 줄 수 있다.
3.smarty 운행 원리
템 플 릿 파일 은 데 이 터 를 표시 하 는 템 플 릿 입 니 다.그 중에서 표시 해 야 할 데 이 터 는 자리 표시 자 로 대체 합 니 다.
smarty 가 실 행 될 때 템 플 릿 파일 을 읽 고 템 플 릿 파일 의 대체 자 를 실제 데이터 로 바 꾸 고 처 리 된 phop 파일 을 출력 하여 서버 에 맡 깁 니 다.
2.스마트 템 플 릿 을 스스로 작성 합 니 다.
스마트 템 플 릿 을 잘 이해 하기 위해 서 는 먼저 자신의 스마트 템 플 릿 인 미니 스마트 를 써 서 스마트 의 운행 원 리 를 더욱 깊이 이해 하도록 한다.
1.새 프로젝트 minismarty
새 템 플 릿 파일 경로:templates
새 템 플 릿 파일 이 컴 파일 된 파일 경로:templatesc
새 템 플 릿 파일:intro.tpl
새로 실행 할 파일:index.php
템 플 릿 을 처리 하 는 smarty 파일 을 새로 만 듭 니 다:clsMiniSmarty.php
2.index.php 파일 작성

<?php 
  require_once './cls_MiniSmarty.php';
  $miniSmarty = new MiniSmarty();
  //    
  $miniSmarty->assign("title","hello minismarty!");
  $miniSmarty->assign("content","<font color='red'>this is content!</font>");
  //           
  $miniSmarty->display("intro.tpl");
?>
3.intro.tpl 파일 작성

<!--       --> 
<html> 
<head> 
<meta http-equiv="Content-Language" content="en" />
<meta name="GENERATOR" content="PHPEclipse 1.0" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>{$title}</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#FF9966" vlink="#FF9966" alink="#FFCC99">
{$content}
</body>
</html>
이 안의 내용 은 자리 차지 문자 의 형식 으로 스마트 의 역할 은 자리 차지 문자 의 내용 을 진정한 데이터 로 바 꾸 는 것 이다.
이렇게 하면 템 플 릿 파일 과 데이터 파일 을 강제로 분리 하여 스마트 를 통 해 데 이 터 를 전달 할 수 있다.
4.cls 작성MiniSmarty.php 파일

<?php 
/** 
 * 
 *      smarty             
 *            ,          
 * smarty   ,      ,            php  
 *                  
 */ 
class MiniSmarty { 
  //       
  var $template_dir = "./templates/"; 
  //              
  var $templates_c_dir = "./templates_c/"; 
  //      
  var $tpl_vars = array (); 
  //    2    
  /** 
   *      
   *   1:  
   *   2: ,   null 
   */ 
  function assign($tpl_var, $var = null) { 
    if ($tpl_var != '') { 
      $this->tpl_vars[$tpl_var] = $var; //          
    } 
  } 
  /** 
   *      
   *   1:           
   */ 
  function display($tpl_file) { 
    //          
    $tpl_file_path = $this->template_dir . $tpl_file; 
    //                
    $compile_file_path = $this->templates_c_dir . "com_" . $tpl_file . ".php"; 
    //         
    if (!file_exists($tpl_file_path)) { 
      return false; 
    } 
    //           ,                             
    //           
    //filemtime  :          
    if (!file_exists($compile_file_path) || filemtime($tpl_file_path) > filemtime($compile_file_path)) { 
      //          
      $fpl_file_content = file_get_contents($tpl_file_path); 
      $newStr = myReplace($fpl_file_content); 
      //              ,          
      file_put_contents($compile_file_path, $newStr); 
    } 
    //         
    include $compile_file_path; 
  } 
  /** 
   *              ,        
   */ 
  function myReplace($fpl_file_content) { 
    $pattern = array ( 
      '/\{\s*\$([a-zA-Z_][a-zA-Z0-9_]*)\s*\}/i' 
    ); 
    $replace = array ( 
      '<?php echo $this->tpl_vars["${1}"] ?>' 
    ); 
    $newStr = preg_replace($pattern, $replace, $fpl_file_content); 
    return $newStr; 
  } 
} 
?>
preg_replace 방법 소개:
인자 1:교체 규칙
인자 2:교 체 된 내용
매개 변수 3:작업 내용 바 꾸 기
5.실행 결과
제목 과 내용 이 모두 표시 되 었 습 니 다.

결론:
실제로 실행 되 는 파일 은 index.php 도 아니 고 intro.php 도 아 닌 smarty 를 통 해 작 동 된 파일 입 니 다.
com_intro.tpl.php。이 파일 의 데 이 터 는 index.php 에서 유래 되 었 으 며,표 시 된 레이아웃 은 intro.tpl 에서 나 왔 으 며,중간 다 리 는 smarty 입 니 다.
smarty 의 역할 은 데 이 터 를 받 아들 이 고 데 이 터 를 채 우 는 것 입 니 다.
3.스마트 사용 디 테 일 설명
1.스마트 를 어떻게 설정 하나 요?
압축 을 풀 고 libs 폴 더 를 프로젝트 디 렉 터 리 에 복사 한 다음 2 개의 폴 더 templates 와 templates 를 만 듭 니 다.c.템 플 릿 파일 과 템 플 릿 을 각각 넣 고 컴 파일 한 파일 입 니 다.
2.스마트 사용 시 주의사항
① 변 수 를 바 꾸 는 표시 자.
기본 표시 자 는{}입 니 다.이것 은 style 스타일 의{}과 충돌 하기 때문에 기본 식별 자 를 수정 해 야 합 니 다.일반적으로{<>}으로 수정 합 니 다.
② 식별 자 를 수정 하 는 방법.
방법 1:스마트 류 소스 코드 를 직접 수정:추천 하지 않 습 니 다.
방법 2:스마트 가 제공 하 는 방법 으로 수정 합 니 다.

$smarty->left_delimiter="{<";
$smarty->right_delimiter=">}";
③ 스마트 의 기본 설정

$smarty->template_dir="./templates";//    
$smarty->compile_dir="./templates_c";//    
$smarty->caching=false;  //      
$smarty->cache_dir="./smarty_cache";//        :     
3.smarty 템 플 릿 기술 배분 변수의 세부 문제
한 마디 로 php 가 지원 하 는 각종 데 이 터 를 분배 할 수 있다.
php 기본 데이터:int double string bool
복합 데이터 형식:array object
특수 데이터 형식:resource null
본 논문 에서 말 한 것 이 여러분 의 phop 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기