“模板”每个从事web app开发的人员也许都会用到它,它的主要作用在于,能将界面表现和程序代码分离开来,这样做的目的一是将前端开发和程序员的工作分离开来,提高工作效率,二是方便维护。当然前端开发它本身又可简单划分为结构、表现和行为三块,如图:
我在这只是谈谈前端结构这块和程序代码是如何通过“模板”使它们分离开的。
基于php程序开发我选择学习使用了PHPLIB Template,PHPLIB Template的技术易用性和速度较为理想,当然它本身也非常简单,这也是我第一个介绍它原因所在。
在写PHP页面的时候,我们会发现大多数页面结构其实都是一致的,只是每个页面的内容有所变化,如果每页都写一遍就太麻烦了,这些相同的结构代码(我们称之为公用代码),我们可以把它单独写在一个文件里,如果这个公用代码要有所改动,无需再去改每一个页面,能减少非常多的工作量。用PHPLIB Template模板可以很方便的把一个页面随意插入另一个模板的任意地方。
新建2个文件login.html、index.html,内容分为如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>{title}</title>
<link rel="stylesheet" href="css/inner.css" media="all"/>
</head>
<body>
<div id="wrapper">
<div id="hd">
<div id="logo-zone">
<h1 id="logo"><a href="#" title="PHPLIB">PHPLIB</a></h1>
</div>
</div>
{main}
<div id="ft">
<p>Copyright by PHPLIB Template</p>
</div>
</div>
</body>
</html>
<div id="bd">
<div id="login-zone">
<form method="POST" name="loginform" action="#">
<h3><b>会员登录</b></h3>
<p class="property">
<label for="username">用户名</label>
<input type="text" name="username" />
</p>
<p class="property">
<label for="password">密 码</label>
<input type="password" name="pwd" />
</p>
<p class="btn">
<button type="submit" class="btn-login"><span>会员登录</span></button>
<button type="button" class="btn-member"><span>新会员注册</span></button>
</p>
</form>
</div>
</div>
下面我们开始看我们的login.php程序:
<?php
require './cls/template.class.php';
$objTP =new Template("./tpl");
$objTP->set_file("index","index.html");
$objTP->set_file("main","login.html");
$objTP->parse("mainlist","main");//解析主区域内容
$objTP->set_var("title","登陆");//变量赋值
$objTP->parse("loginPage","index");//解析整个页面内容
$objTP->p("loginPage");
?>
如果是要循环输出的数据,我们使用set_block的方式来实现。
例如:
新建一个 list页面模板,如下:
<div id="bd">
<div id="login-zone">
<ul>
<!– BEGIN list –>
<li>用户名:{name} 年龄:{age}</li>
<!– END list –>
</ul>
</div>
</div>
list.php程序,如下:
<?php
require "./cls/template.class.php";
$objTP =new Template("./tpl");
$objTP->set_file("index","frame.html");
$objTP->set_file("main","list.html");
$objTP->set_block("main", "list", "nlist");
//加载模板main中的块list,并给其一个名字nlist
$link=mysql_connect("localhost","root","");
$result=mysql_db_query("fyt","select name,age from users");
while ( $a = mysql_fetch_array($result))
{
$objTP->set_var("name", $a[name]);
$objTP->set_var("age" , $a[age]);
$objTP->parse("nlist", "list", true);
}
$objTP->parse("mainlist","main");//解析整个页面内容
$objTP->set_var("title","用户列表");//变量赋值
$objTP->parse("listPage","index");//解析整个页面内容
$objTP->p("listPage ");
?>
这样一来简单的页面模板嵌套问题可以解决啦!
其实在web app开发过程当中模板的制作和拆分,需要前端开发者和后台程序员协商来定,前端开发者对页面结构非常熟悉,而程序员对数据结构非常熟悉,双方友好协作,才能实现基于数据的最优模板结构。
分享到:
相关推荐
My Simple template class - Alacner 根据discuz的模板原理改成可以单独运用的类,调用简单。
Ease Template 提供了一套自定义的标签和控制结构,这些标签可以直接在HTML模板文件中使用,使得非PHP程序员也能理解并进行简单的修改。 该框架的主要特点包括: 1. **简洁的模板语法**:Ease Template 的模板语法...
PHPTemplate的核心思想是将HTML与PHP代码相结合,形成一种简单易懂的方式来进行页面布局的设计。每个`.tpl.php`模板文件都包含了一个基本的HTML结构,并嵌入了一些简单的PHP代码,用于输出动态数据。这意味着即使是...
PHP EASE TEMPLATE 模板引擎 帮助文档
lovefc_Template php轻型模板引擎,lovefc_Template中,定义了一个赋值的语法,它的优势在于:lovefc_Template的转换方式不是通过简单的正则匹配,支持其它的目录模板,或者可以是一个文件的路径,另外值得一提的是...
这里的"简单的template的js模板"就是一个这样的工具,它提供了一种优雅的方式来处理动态数据,比传统的字符串拼接方式更高效、更易读。 模板引擎的基本原理是通过特殊的语法(如Mustache风格的`{{ }}`或者EJS的`...
1. **HbaseTemplate的初始化**:在使用HbaseTemplate之前,我们需要在Spring配置文件中配置HBase的相关连接信息,如Zookeeper地址、HBase表名等,并实例化HbaseTemplate。这通常通过@Autowired注解和@Configuration...
Description: Among the many different approaches to "templating" with Perl--such as Embperl, Mason, HTML::Template, and hundreds of other lesser known systems--the Template Toolkit is widely ...
在本文中,我们将深入探讨如何使用Jquery插件Json2Template进行项目开发。Json2Template是一款基于jQuery的库,它允许开发者将JSON数据动态渲染为HTML模板,极大地提高了前端界面的数据展示效率。在学习和应用这个...
管理系统系列--基于vue-admin-template开发的后台权限管理系统是现代Web应用程序开发中常见的一种架构模式,它结合了前端的Vue.js框架和后端的ThinkPHP5框架,为用户提供了一个功能完善的后台管理解决方案。...
总之,ArtTemplate是一款优秀的JavaScript模板引擎,它凭借其出色的性能、安全的渲染方式和简单易用的特性,成为了前端开发者的得力工具。无论是在小型项目还是大型复杂应用中,都能看到ArtTemplate的身影。
本文主要围绕`art-template`这一前端模板引擎,通过`art-template-test`示例代码来深入探讨其核心概念、使用方法以及在实际项目中的应用。 `art-template`是一个轻量级、高性能的JavaScript模板引擎,它旨在解决...
简单的模板引擎使用纯 PHP 语法的简单轻量级 PHP 模板引擎。 简单模板引擎通过引入块和模板继承来增加 PHP 的模板功能。 它易于学习,对于小型网站或与...echo $ env -> render ( 'template.php' ); 您还可以传入一个扩
PHP::Template 的模板文件使用简单的标记语法,这些标记通常被包含在双大括号`{{ }}`内。例如,要插入变量,你可以使用`{{ 变量名 }}`;对于条件语句,如`IF-ELSE`,则使用`{{#IF 条件}}{{/IF}}`结构;循环可以通过`...
PHP实例开发源码—php 模板框架 Ease Template.zip PHP实例开发源码—php 模板框架 Ease Template.zip PHP实例开发源码—php 模板框架 Ease Template.zip
"MongoDB 使用 MongoTemplate 实现统计和分组" MongoDB 是一个非常流行的 NoSQL 数据库,它可以存储大量的数据,但是有时候我们需要对这些数据进行分析和利用。在本文中,我们将介绍如何使用 MongoTemplate 实现...
作为一个小型模板引擎,Lovefc_Template应该注重与其他PHP框架和库的兼容性,同时也应具备简单易学的API,以便开发者快速上手。 通过对Lovefc_Template的深入理解和使用,开发者可以更好地组织和管理Web应用程序的...
2. **控制结构**:Ease Template 支持 if/else 语句和 for/while 循环,使得在模板中实现逻辑判断和迭代变得简单。 3. **函数和方法调用**:框架允许在模板内调用 PHP 函数或对象的方法,增强了模板的动态性。 4. ...
Text_Template ... composer require phpunit/php-text-template 如果仅在开发过程中需要此库(例如,运行项目的测试套件),则应将其添加为开发时依赖项: composer require --dev phpunit/php-text-template
- **循环语句**:除了简单的`for`循环,还支持`each`循环,如`, index %>`。 - **函数调用**:在`{{ }}`中可以调用自定义函数,处理复杂逻辑。 - **模板继承和部分**:通过`<%- %>`引入其他模板或部分,实现模板...