美文网首页
自定义PHP模板引擎

自定义PHP模板引擎

作者: 七秒的记忆_d4a7 | 来源:发表于2020-01-08 19:16 被阅读0次

相信作为PHP开发人员,肯定都至少会用一两种模板引擎,比如最为流行的Smarty等,但是又有多少人真正理解它们是如何工作的呢?说实话之前我一直不懂,也不曾想过要去研究和理解它,最近不知道哪根筋搭错了,突然对PHP模板渲染起了兴致,于是研究了下开源模板引擎Smarty的原理,并尝试着自己实现了一套模板引擎,下面给大家分享下:

先来看看,模板的组成

image

我们看到,整个模板由标签、变量和html代码三部分组成

而模板引擎要做的事情就是把里面的标签和变量解析成PHP可执行的代码,然后输出。于是问题来了,模板引擎要解决的问题是:

  1. 变量赋值

  2. 标签解析

  3. 输出

因此模板引擎必须提供三个核心方法,变量赋值的方法、标签解析的方法和输出方法,,取名为assign、handle_view_file、display。

变量赋值方法:通过一个_options的数组变量存储

image

标签解析方法:将模板里面的标签替换成PHP可执行的代码,通过正则来做的,核心函数为preg_replace

image

模板输出函数:将模板里面的标签替换成PHP代码,同时进行变量赋值,然后通过include函数执行并输出

image

当前这里里面也涉及到一些加载模板文件、加载编译文件、判断是否需要重新编译以及进行模板编译的函数。

至此,整个模板引擎的实现到此结束。

相关文章

  • 《PHP Learning》模板引擎

    《PHP Learning》模板引擎 模板处理使用正则处理模板替换规则保存模板编译结果 模板使用 自定义模板引擎 ...

  • Smarty模板

    PHP模板引擎 该文档使用的是Smarty 3.1.33 Released版本 什么是PHP模板引擎? php模板...

  • (笔记)php-smarty模板引擎

    一、模板引擎简介 什么是模板? 所谓模板就是指无PHP代码,只有HTML+CSS+JS。 什么是模板引擎? 模板...

  • PHP自定义模板引擎

    类文件my/config.class.php 模板文件my/templaces 编译文件0.1.php

  • 自定义PHP模板引擎

    相信作为PHP开发人员,肯定都至少会用一两种模板引擎,比如最为流行的Smarty等,但是又有多少人真正理解它们是如...

  • 2018-05-11Smarty模板引擎

    Smarty(模板引擎) 一、什么是模板引擎? Smarty是一个php模板引擎。更准确的说,它分开了逻辑程序和外...

  • Laravel 文档阅读:Blade 模板

    简介 Blade 是 Laravel 提供的模板引擎,它简单强大。不像其他的 PHP 模板引擎,Blade 允许在...

  • Laravel(四)

    Blade模板引擎简介 Blade是Laravel提供的一个既简单又强大的模板引擎和其它流行的PHP模板引擎不一样...

  • 第十二节: ejs与pug模板引擎

    模板引擎 node框架express, koa可以像php一样使用后台语言模板,常用的模板引擎有ejs和pug 1...

  • laravel 基础教程 —— Blade 模板引擎

    Blade 模板引擎 简介 Blade 是 laravel 提供的一个简单强大的模板引擎。它不像其他流行的 PHP...

网友评论

      本文标题:自定义PHP模板引擎

      本文链接:https://www.haomeiwen.com/subject/drnsactx.html