关于template的思考,对模板熟悉者请进。_PHP教程
用PHP进行项目开发,由于PHP的解释执行,我们经常会面临执行速度和通用性、编程效率产生矛盾,然后又如何取舍的问题。PHP的早期版本都是面向过程的,以执行速度快著称,在开发复杂应用时日显捉襟见肘,随着4.3及以后版本的发行可以看到PHP将向面向对象方向发展,
用PHP进行项目开发,由于PHP的解释执行,我们经常会面临执行速度和通用性、编程效率产生矛盾,然后又如何取舍的问题。PHP的早期版本都是面向过程的,以执行速度快著称,在开发复杂应用时日显捉襟见肘,随着4.3及以后版本的发行可以看到PHP将向面向对象方向发展,于是大家逐渐习惯写大量的基类,大量的使用include_once,这样使我们的开发变得有序,程序逻辑更清晰,当我们开发完成之后,发现执行效率不如以前,PHP在解析和文件调用上花费过多的开销,一个页面使用十几二十个include会将PHP拖垮,我们的注意力开始从数据库转向PHP程序的优化,从一方面来讲,大型数据驱动用面向对象模式无可非议,另一方面,PHP的代码应该突出类C语言的简洁高效。于是我们迷茫了:如何保证大型应用的执行效率?这是我思考已久的问题。
也许上面的话题涉及的太多,下面我只想具体谈谈大量模板处理的问题:对于几百个页面的规模,每页都有动态数据,少量页面涉及较多的变量,如何方便地实行模板变量替换?难道直接用set_var()一行一行地替换?
模板机制的广泛采用使PHP代码和HTML混杂在一起成为历史,解决了前台输出和后台程序的冲突,前台对程序员是透明的,同样后台对美编也是透明的,优越性不言而喻,而我们所付出的代价只是约定好一组变量名,并简单的替换一下而已。然而有几百个网页就有几百个模板,每一个页面可能有数十个变量,于是这一简单的变量替换工作也变成了累赘,以PHPLIB的template为例,就需要几十行set_var(),我开始设想一个VIEW类,它将继承template,定义一个数组成员保存用来替换的变量名表,提供setvalue()和output()方法,通过setvalue($key,$value)来赋值,很明显$value就是从数据库取出的数据,$key是将要替换的变量,难点就是如何确定$key(即HTML中{}中的名字)的值, 举个例子,比如在模板文件my.tpl中象这样:
您的用户名是
职位是 在PHP文件中应该象这样($name和$position是动态数据): …… $tp->set_file("filehandle","my.tpl"); $vararr=array("tpname"=>$name,"tpposition=>$position); tp->set_var($vararr); tp->pparse("out","filehandle"); 在倒数第二行我用数组传递要替换的变量列表,一个页面有一二十个模板变量是正常,问题是能不能方便地一次性设置好数组下标(即要替换的变量名例如"tpname"和"tpposition"),否则只能一行行地set_var,目前我仍在探索中,欢迎大家踊跃交流这方面的解决办法。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

如果您是一位经验丰富的 PHP 开发人员,您可能会感觉您已经在那里并且已经完成了。您已经开发了大量的应用程序,调试了数百万行代码,并调整了一堆脚本来实现操作

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

字符串是由字符组成的序列,包括字母、数字和符号。本教程将学习如何使用不同的方法在PHP中计算给定字符串中元音的数量。英语中的元音是a、e、i、o、u,它们可以是大写或小写。 什么是元音? 元音是代表特定语音的字母字符。英语中共有五个元音,包括大写和小写: a, e, i, o, u 示例 1 输入:字符串 = "Tutorialspoint" 输出:6 解释 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。总共有 6 个元

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。
