迷你版smarty的制作,模板制作流程,方法,思想

smarty模板引擎是为了分离php代码和html代码;

原理:分析html模板中的标签,生成相应的php文件,再引入该php

访问过程: 1、用户访问.php文件:在php文件中包含模板文件,传递模板文件中的一些必要属性

/**
 * 总结:
 * $smarty的工作流程;
 * 1、把需要显示的全局变量赋值,塞到对象内部的属性上,一个数组里
 * 2、编译模板,把{$标签},解析成相应的PHPecho代码
 * 3、引入编译后的php文件
 *
 *
 * 使用smarty的步骤
 * 1、smarty是一个类,要使用,需要先引入并实例化
 * 2、assign赋值
 * 3、display[编译到输出]
 *
 * smarty之辩
 * 1、编译模板,浪费时间
 * 2、要把变量再重新赋值到对象的属性,增大开销
 */

1、访问的页面

demo.php

<?php
include ‘./mini.php‘;

$mini=new mini();

$mini->template_dir=‘./template‘;
$mini->compile_dir=‘./compile‘;
//echo $mini->compile(‘01.html‘);
$title=‘霍‘;
$content=‘,hello‘; 

$mini->assign(‘title‘, $title);
$mini->assign(‘content‘, $content);

//print_r($mini->_tpl_var);
//include $mini->compile("01.html");
$mini->display(‘01.html‘);

2、需要引入的模板引擎

<?php
class mini{
    public $template_dir=‘‘;//模板文件所在的位置
    public $compile_dir=‘‘;//模板编译后存放的位置
    //定义一个数组,用来接收外部的变量
    public $_tpl_var=array();

    public function assign($key,$value){
        $this->_tpl_var[$key]=$value;
    }
    /*
     * string $temlate 模板文件名
     * return string
     * 流程:把指定的模板内容读过来,再编译成PHP
     * */
    public function display($template){
        $comp=$this->compile($template);
        include $comp;
    }
    /*
     * string $temlate 模板文件名
     * return string
     * 流程:把指定的模板内容读过来,再编译成PHP
     * */
    public function compile($template){

        $temp=$this->template_dir.‘/‘.$template;//模板文件
        $comm=$this->compile_dir.‘/‘.$template.‘.php‘;//编译后文件

        //判断模板文件是否存在
        if(file_exists($comm) && filemtime($temp)<filemtime($comm)){
            return $comm;
        }
        //读出模板内容
        $source=file_get_contents($temp);
        //替换模板内容
        $source=str_replace(‘{$‘, ‘<?php echo $this->_tpl_var[\‘‘, $source);
        $source=str_replace(‘}‘,‘\‘]; ?>‘, $source);
        //把编译后的内容保存成.php文件

        file_put_contents($comm, $source);
        return $comm;
    }
}
时间: 2024-08-18 03:16:38

迷你版smarty的制作,模板制作流程,方法,思想的相关文章

迷你版Vue--学习如何造一个Vue轮子

项目地址 文档 数据双向绑定 Vue主流程走向 组件 nextTick异步更新 MVVM 先来科普一下MVVM的概念及原理 配套插件 mini-vuex 实现一个迷你版的vue 实现的功能 全局方法 // 继承MiniVue 产生一个新的子类构造函数 MiniVue.extend // 在实例化过程完成后运行 MiniVue.nextTick // 注册自定义指令 MiniVue.directive // 过滤器 MiniVue.filter // 组件 包括slot props MiniVue

Discuz3.3精仿小米风格整站模板制作——1、新建模板方案

术语说明: 模板——模板是一堆按照规定命名方式的html文件,用于指定整个论坛不同页面的外观. 标签——标签和模板共同作用以实现论坛换肤功能,其中标签主要控制页面显示什么数据,显示多少条等. 风格——风格是一个xml配置文件,用于配置一些固定区域字体的大小.颜色.背景色等.例如春节时,整个版面变成喜庆红色等.风格这个功能实质上是一种可以直接在后台设置论坛中固定格式的文字(如标题列表等)的大小.颜色.背景色等而不用单独写css文件进行覆盖的技术.对于有编码能力的站长来说,其实无多大意义. Disc

【Ecmall】ECMall2.x模板制作入门系列(认识ECMall模板)

ECMall2.x模板制作入门系列之1(认识ECMall模板) 从ECMall2.0全新架构发布以来,随着版本的不断更新,ECMall已经逐渐走向一个稳定时期,是时候整理一些实用教程了.下面给大家带来一个模板制作入门教程. 申明:本人第一次写教程.可能只能说一些比较浅显的基础知识.条理性可能不是很到位,说得不对的地方欢迎拍砖并指正,目的是希望通过这次教程能让新手们对模板有一个比较系统的认识. 一.ECMall的模板文件在网站中怎么分布的.怎么找到一个页面所对应的模板theme/ 主题目录 商城模

7.1 制作模板并简单编辑

在上一章中,首先介绍了一般网站的开发流程,其主要流程有需求分析.网站制作.测试网页和发布网站.随后简单讲解了淘宝网首页有哪些内容7最后着重研究了页面布局技术,其中框架布局和表格布局有存在的必要,不可抛弃,DIV层布局是未来的发展趋势. 从本章开始,我们将继续学习网站制作相关知识.所有的页面制作好之后,我们就要测试页面内容,来审视我们制作的页面是否美观,来检查页面中是否有死链接,来查看页面是否可以兼容不同的浏览器.测试完之后,为了使更多的人知道您的网站,就必须把我们制作.测试好的网站在网上进行发布

phpwind9.0模板制作教程——制作论坛风格

由于论坛模板机制和门户等模板机制不同,所以今天我就先重点讲讲论坛模板制作的大概过程. 一.先来熟悉下phpwind9.0的论坛模板机制. 其实phpwind9.0的模板机制和discuzx2.5差不多,都是程序运行本身自带的默认模板(template内文件),然后如果我们自己设计一套模板放在对应的文件夹中并且后台进行指定的话,那么程序就将运行我们新建的模板风格,官方这样做的目的是:想改哪里就做哪里的模板,很方便很灵动,如果说为了修改一个论坛界面的风格动辄就要去做整站模板的话,那可就得不偿失了.

Xen虚拟机磁盘镜像模板制作(二)—Windows Server 2008(2012)

在<Xen虚拟机磁盘镜像模板制作(一)—Windows Server 2008(2012)>一文中,我们已经成功制作出了Windows Server磁盘镜像.下面我们说明下如何通过它来生成目标虚拟机,同时测试下之前制作好的虚拟机磁盘镜像模版是否有问题.具体流程如下文所述: 1.创建目标虚拟机的系统盘: [[email protected] ~]# lvcreate -L 15G -n windows_vm vg0 Logical volume "windows_vm" cr

VMware Horizion view模板安装部署之win10模板制作

上期,我们对Windows 7模板的制作进行了简单的描述,今天我将带领大家对Win10模板制作进行描述.希望能为大家在工作之余起到参考和帮助作用. 针对模板的制作,基本的流程大致都是一样的过程,在此我就不做过多的描述,我将主要对测试过程中遇到的问题进行描述. 在使用Windows 10发布桌面时,曾遇到过如下问题,虚拟机模板生成的虚拟机无法激活,我尝试了多次的失败之后,终于找到了解决方法,具体方法简单描述如下: 1.通过搜索引擎,发现如下链接http://tieba.baidu.com/p/47

echarts &nbsp; js 模板制作 地图 案例分享

今天分享一个 echarts   js 模板制作 地图 案例,有类似需求的筒子可以参考 O(∩_∩)O 需求:因为最近管理的全国各地代理服务器越来越多,有时上级需要看下我们的代理分布,比如带宽,比如供应商,如果用纯excel不是很直观,就套用了前端的Js模板,修改了些代码,填充部分值进去,就出来基本效果了. 上效果图: 基本上把全国各地的资源情况很直观的显示出来了,这里只填充了部分值,后期会将值存入mysql,并且用上ajax 来塞值,这里就列个基本的效果图. 5分钟上手echarts,官网教程

WP主题模板制作修改教程

WP主题模板制作修改教程 实际上,当我们打开某个主题的文件夹时,看到的并不止这两个文件,而是更多.但一般来说,在一个完整的 WP 主题文件夹中都应该包含下列文件(也称为模板文件):页面 模板文件 用途首页 index.php 显示网站首页单页 single.php 显示博文的页面(相当于细节页)静态页 page.php 显示静态页的页面(包含各级静态页面)分类页 category.php 显示分类页的页面(相当于栏目页)存档页 archive.php 显示存档页的页面(相当于按时间归类的栏目页)