zoukankan      html  css  js  c++  java
  • 网页设计与后台程序解决方案模板引擎之Smarty

    1.模板引擎&核心技术

      1) 初始web应用的开发模板往往都是混合式编程,PHP脚本的编写者必须既是网页设计者,又是PHP开发者,但实际情况,两种技术都精通的开发者并不多见。模板引擎的出现解决了这个问题,可以将网站的页面设计和PHP应用程序几乎完全分离,使得网页设计师更注重于网页,PHP工程师更注重于逻辑开发。

      2)核心技术:只要将美工页面(不包含任何的PHP代码)指定为模板文件,并将这个模板文件中有活动的内容,定义成使用特殊"定界符"包含的"变量",然后放在模板文件中相应的位置。当用户浏览时,由PHP脚本程序打开该模板文件,并将模板文件中定义的变量进行替换。这样,模板中的特殊变量被替换为不同的动态内容时,就会输出需要的页面。 

    2.安装smarty

      1) 到Smarty官方网站http://www.smarty.net/download.php下载最新的稳定版本.

      2) 解压在之后,将libs文件夹复制到的程序主文件夹下。(我的Apache主目录为D:\webRoot)

      3) 在执行的PHP脚本中,通过require()语句将libs目录中的Smarty.class.php类文件加载进来,Smarty类库就可以使用了。

      4)在主目录中分别建立templates,templates_c,cache,configs文件夹,具体含义在下一步。

    3. Smarty类库的初始化

      $template_dir:模板文件的指定目录

      $compile_dir: 编译之后的模板文件目录

      $config_dir:存放模板特殊文件目录

      $left_delimiter:模板中左结束符标志 默认情况下为"{"

      $right_delimiter: 模板中右结束符的标志 默认为"}"

      $caching:告诉Smarty是否缓存模板的输出。

      $cache_dir:缓存模板文件的指定目录

    4.创建模板 在网站主目录templates下建立模板templates/test.tpl

      

    1 <html>  
    2     <head>  
    3         <meta http-equiv="Content-type" content="text/html; charset=gb2312">  
    4         <title> { $title } </title>  
    5     </head>  
    6     <body>  
    7         { $content }  
    8     </body>  
    9 </html> 

    5. 创建文件index.php

    <?php
       include "./libs/Smarty.class.php";         //包含Smarty类库所在的文件  
       define('SITE_ROOT', '/usr/demo');          //声明一个常量指定非Web服务器的根目录  
       $smarty = new Smarty();                    //创建一个Smarty类的对象$tpl  
       $smarty->template_dir = SITE_ROOT . "/templates/";    //设置所有模板文件存放的目录  
        $smarty->compile_dir = SITE_ROOT . "/templates_c/";   //设置所有编译过的模板文件存放的目录  
        $smarty->config_dir = SITE_ROOT . "/configs/";        //设置模板中特殊配置文件存放的目录  
        $smarty->cache_dir = SITE_ROOT . "/cache/";           //设置存放Smarty缓存文件的目录  
        $smarty->caching=1;                               //设置开启Smarty缓存模板功能  
        $smarty->cache_lifetime=60*60*24;                  //设置模板缓存有效时间段的长度为1天  
        $smarty->left_delimiter = '<{';                    //设置模板语言中的左结束符  
        $smarty->right_delimiter = '}>';                    //设置模板语言中的右结束符  
    
       $smarty->assign("title", "测试用的网页标题");       //第四步:用assign()方法将变量置入模板里  
        $smarty->assign("content", "测试用的网页内容");     //也属于第四步,分配其他变量置入模板里  可以向模板中置入任何类型的变量  
        $smarty->display("test.tpl");                    //利用Smarty的display()方法将网页输出
    ?> 

    地址栏输入localhost/index.php 得到下图所示:

      

  • 相关阅读:
    RedisTemplate实现事物问题剖析和解决
    PO BO VO DTO POJO DAO概念及其作用(附转换图)
    Java 应用程序设计规范
    Java web url 规范
    Java 中 Map与JavaBean实体类之间的相互转化
    使用Java 8中的Stream
    [转]http://lua-users.org/wiki/LpegTutorial
    [转]LUA元表
    LPEG
    [转]LUA 学习笔记
  • 原文地址:https://www.cnblogs.com/Jqxing/p/3017050.html
Copyright © 2011-2022 走看看