PHP模板新手篇总结
标题:PHP模板新手篇总结对于PHP新人来说,是否一定需要模版呢?如果需要,如何选择?
以下想法是对这次活动的总结,并不只属于PHPChina的观点,而是属于所有PHPer的想法:
对于PHP新人来说,“如果绝对新人,一点编程概念都没有,自然不应该用模板.如果是有ASP perl基础的人开始学PHP,用点模板也是可以的. ”[来自url=http://www.phpchina.cn/bbs/viewpro.php?uid=274]MYSQL[/url]]“如果是一个纯粹新手,如果一上来看摸版,那样容易走偏。先写完一些基础代码。 把PHP手册中主要部分,例如字符串,数组等基础函数部分都看完,明白了。然后就可以尝试写一些程序和页面混合的小程序了。写上一段时间以后,继续多看看书。 书很重要,没有理论的支持,很容易走弯路。然后多看看一些前辈的代码。现在有一个工作需要你和美工配合,并且你已经开始考虑代码的执行效率了。那么你可以看看摸版了。同样这个时候你发现,很容易上手的!”[来自[url=http://www.phpchina.cn/bbs/viewpro.php?uid=116]大白菜芯[/url]]
“个人认为,对于新手上路,模板不是必需的。可以先以一个留言板之类的上手,练一段时间后,再学习一种模板处理方式,重写成模板形式。[来自[url=http://www.phpchina.cn/bbs/viewpro.php?uid=197]seraph[/url]]”“当然如果能可视化的,在Dreamweaver里能正常显示的,新手可以考虑较快地开始使用模板。”[来自[url=http://www.phpchina.cn/bbs/viewpro.php?uid=182]Bantu[/url]]
“固然模板能提高编码效率,但我认为刚学php的话还是尽量自己编写代码,多了解一些细节部分的编码,以后使用模板时不至于太茫然.新手可以用不同的技术反复实现同一个例子,这样对于理解是很有帮助的.” [来自[url=http://www.phpchina.cn/bbs/viewpro.php?uid=192]xlmo[/url]]在学习的时候,反复的不断换代码,显示一些测试、调试的输出,看输出的内容与预想的结果是否一致,这是一个很简单易行的学习、调试方式。可以很快的就理解体会到相关代码/函数/类的意图与思路。“三年前刚接触PHP的时候是PHP代码和HTML混写的,一直坚持了近两年时间,后来做一些项目时发觉有必要使用模板了,才开始使用。代码和HTML分离可以更好的做好分工,而且看上去更加有条理。开始的时候对于选择哪个模板我也犹豫了很久,最后还是选择了smarttemplate(注意,不是smarty),现在围绕smarttemplate做了一些小修改,用起来还比较顺手。”[来自[url=http://www.phpchina.cn/bbs/viewpro.php?uid=1180]diekiss[/url]]
“我是一年前开始接触php了,一开始就用smarty模板来编写网页(当然,有人带着)开始用模板的时候是有点晕,但后来觉得越用越顺。我觉得新手上来就用模板还是有一下几点好处的
1、可以先专注页面的功能逻辑,而不会被页面表现所累。如果一开始就在“<?php cmd ?>”和“<html></htm>”中转来转去,新手往往会把更多的精力放在页面表现上,毕竟作为新手,先做出一个能动态变化的网页还是颇有成就感的。但关注页面表现,往往会忽视了页面的整体逻辑流程,而且在满页的“echo "<html>...”中也不利于形成良好的编码规范
2、模板是大势所趋,一开始就将逻辑和表现分离,可以不用再经历转向模板的过程。当然,对于新手来说,接触模板最好有人指导,这个条件对于一些新手来说可能不太容易实现。”[来自[url=http://www.phpchina.cn/bbs/viewpro.php?uid=1171]leeyupeng[/url]]
“使用模板不是说它使程序更有效率(事实上,模板的效率相对会降低程序执行的效率),而是让自己的程序思路更清晰,维护更容易,改进更方便,重用性更好!对于初学者来说,我的建议和大白菜芯一样,先学好基础语法和面对过程编程(事实上这也很重要,有助于理解PHP的强悍之处),然后在实践中思考中去理解和使用模板!第一次使用模板的,选择phplib和fasttemplate这两个精简但很适用的模板工具比较好。最好能够自己看懂里面的代码,深刻理解其中的原理。然后你可以想想怎么去改进他们,比如不停的set_var是不是很麻烦,可不可以自动实现对所有标签的替换?如何处理好select标签?等等啦~~
在次基础上,可以去使用smarty,比较它和phplib,fasttemplate的不同和优缺点,smarty的缓存机制的确是个好东西!如果你不能很好理解,可以去先参考下缓存原理的一些文章~。使用模板的目的都是程序容易维护,改进。在理解好模板后,你可以考虑如何让模板和自己程序更加合理的构成一个完整的架构,这个时候可以去看看设计模式和参考下其他的语言的优缺点,比如JAVA~ ”[来自[url=http://www.phpchina.cn/bbs/viewpro.php?uid=91]feifengxlq[/url]]
总的来说模板对于开发会有很大好处,比如最基本的就是将程序代码与设计分离开,这样就可以将代码开发工作与样式设计分离开,进而也可以达到日后更换界面方便。但是,对于一些小项目或者资源消耗比较大的来说这样做可能会使开发规范一些,但是可能会在运行时占用一些资源。模板一般都是函数定义解析,在解析的过程肯定会有一些效率上的折扣。所以我个人的看法就是,对于一些小项目,或者是界面样式要求不是很苛刻的来说,还是不要使用模板或者自己写一个模板处理方式比较好一些。比如,我的做法就是自己写一个模板处理的函数,与其说是模板倒不如说是预处理:直接将样式控制部分写到“模板”中,当然这是php文件里面的代码也是php正常代码,唯一同代码不同的是,这部分的文件都是仅仅处理显示方面的,然后将内容全部符值到一个变量中,在页面统一输出,这样做的好处是可以将一般模板类的代码转换解析去除掉、符值给一个变量输出在压缩上来说也可以达到最大(可能是我自己感觉如此,呵呵)。当然为了避免有人直接运行“模板”文件,可以在“模板”文件头做一些判断等等。只是个原理,偶做一个项目时候就这样处理的,由于代码关联比较紧,所以只说一下原理大家根据自己的需要来具体处理吧[来自[url=http://www.phpchina.cn/bbs/viewpro.php?uid=939]Deepseath[/url]]
总结,对于PHP新人来说,是否一定需要模版呢?其实,这个问题并没有明确的答案。但是如果你是处于PHP的起步阶段,并且没有高手指点的话,一开始就使用模板会比较困难。可以从一些PHP例子、PHP手册入手,学习环境搭建、基本语法等等基础知识。当对PHP有了比较清楚地认识并对语法比较熟悉时,可以接触PHP模板了,“可以直接理解三层结构”。[来自[url=http://www.phpchina.cn/bbs/viewpro.php?uid=274]MYSQL[/url]]
刚开始接触PHP模板时,可以选用一些简单的PHP模板。比如smartylight、PHPlib等,当然也可以在学习模板的时候去分析一些比较成功的代码,比如Discuz等。总之,如果你对PHP有了比较好的了解,同时对Webserver,Browser的WEB应用模式有了比较清楚的了解,你对模板的学习就会更加容易。这将大大地提高你的开发速度。 使用模板技术最简单的原因就是模板分离. 我觉得大家的观点都很好.
从MVC的观点来看模板技术,模板属于视图也就是View...逻辑层在M也就是模型 Model,负责逻辑结构.
C控制器负责控制调用的逻辑和模板.
控制器的作用不可小视,它可以隐藏你的页面. 如果看看plog的控制器可以有明白的.
c负责将用户需求调用给模型,模型负责调用合适的模板视图.
也许你看一个网站只有一个php页面..
所有的功能都在一个页面实现, 譬如
index.php?act=log
index.php?act=view
<?
$index=true;
switch ($act){
case "log":
include_once "log.php";
break;
case "view":
include_once "view.php";
break;
default:
exit("这个页面不存在");
}
?>
而在log页面中..
<?
if($index!=true){
exit( "页面不允许直接调用");
}
........
?>
等等在模型中他们将分别调用 log.php 和 view.php 而 这两个php页面 将根据逻辑调用不同模板.
区分是否登录和是否有权浏览.
这样大家就看到了好处, 你并不能单独去打开log.php的页面.而你对页面的访问仅仅限制在log和view上.其它的提交都被控制器隔离了.这只是一个简单的MVC的例子.更多更强的功能可以看其它的MVC的资料.或者你可以写一个更强大的框架出来.
对于什么时候学习模板,我同意大家的观点.
初学php,还是先面向过程学习函数 在去面向对象OO比较好.
模板也是一样..有了基础.自然而然就会逐渐使用了.
多看别人的代码,就会领悟其中的精髓和思维的巧妙.
应管理员之请,胡说几句. 楼上说的好,新人多看别人的代码很有帮助,
一遍看不懂,就搁置两天再看一遍。一定会有收获的。
discuz2.5f的几个文件看过3遍,每次都有收获。但对于其模板工作方式还是不懂。 不错的文章
页:
[1]
