PHP[OOP入门]PH07-模板引擎类

该部分为 php 面向对象的入门部分,较为肤浅且参杂过分已经不是主流的知识。

这是我早期的 php 学习笔记,php 的学习版本版本是 5.6、7,🐟2020/05/06年从有道笔记导出至此。

day07-模板引擎类

1、模板引擎

html css 静态页面

php 内嵌到html文件中的服务端脚本语言

1.php

<html>

<?php echo 123; ?>

<?php foreach ($data as $key => $value) : ?>

<div><?=$value; ?></div>

<?php endforeach; ?>

</html>

弊端:

html代码和php代码交叉的太厉害,非常乱,而且,真正的工作中,前端的代码是有专门的妹子来写的,后端的代码你们这些汉子负责的

模板引擎

就是为了分离html文件和php文件而产生的

1.html(负责显示数据的)《====模板引擎===1.php(用来获取数据的)

简单的逻辑(得到数据显示出来)

使用模板引擎的语法来显示

{$title} =======》 <?=$title; ?>

{if $a > 0} =====> <?php if ($a > 0): ?>

{/if} =======> <?php endif; ?>

通过模板引擎,将html文件中的模板引擎的语法替换为php的语法,然后将该文件的后缀从html变成php,最终显示这个php文件。这个生成的php文件就是传说中的缓存文件

2、正则替换

preg_replace

正则表达式有

定界符 原子(\d \w .) 元字符(+ ? * {n}) () {} . + * ?

preg_quote

preg_replace_callback

3、include问题(一会讲吧)

4、缺点

面向过程

每次都会生成缓存(过期时间)

分页时候生成都是同一个缓存文件 index.php?page=3

类的设计:

成员属性

模板路径

缓存路径

过期时间

变量数组(用来保存页面需要显示的数据)

成员方法

assign($name, $value) :分配变量

display(模板文件名, 是否include进来, uri) :展示模板

<html>

{include 'head.html'} => <?php include 'head.php'; ?>

{include 'foot.html'}

</html>