选择显示字体大小

php的模板

分离htmlphp使网页设计师和php程序员合作更加愉快。

关于php的模板的确是一个说起来容易做起来麻烦的事情。随便一数大概有20种以上的选择,光pear里面就包含了5种不同的模板,实在让人头疼。 web">中国站长资讯网千万不要人云亦云的说这个好那个不好,选择模板之前最好先应该搞清楚模板的真正目的是什么? 简单地说,模板的核心目的就是一个 team work。主要的作用方式有两种:

分离htmlphp使网页设计师和php程序员合作更加愉快。

分离显示逻辑和事务逻辑,使得核心事务逻辑的变更和应用程序的扩展更加容易和灵活,也就是说使得程序员之间合作更加愉快。(这一点经常被人们忽视或者误解,总以为把phphtml中弄出去就叫分离显示逻辑和事物逻辑了,web">中国站长资讯网如果这样当初又何苦让phphtml 混在一起呢?)

搞清楚这个模板的真正目的是什么,就容易做出明智的选择了。

如果只有你一个php程序员但是需要和其他的网页设计人员一起协同工作,那么选择能够分离htmlphp的模板就可以了,phplib (现在好像集成到 pear 里面了 html_template_phplib)或者 fasttemplate 都是这样的东西,很简单容易上手。

如果你的网站界面比较丑陋并且主要由程序员来完成,但是功能比较复杂更需要强大的扩展功能,需要分离各个层次包括显示逻辑,那么不要用什么特别的东西,php本身就是最好的模板了。要注意的是在这种情况下,你要非常认真的设计你的程序,始终记住要分离的不是phphtml 而是事务逻辑(business logic )和显示逻辑(presentation logic)。这也是为什么我一直对于smarty 这种东西非常的抵触, 因为这个 smarty 的语法太复杂了太强大了, 几乎重新发明了一种脚本语言东西, (即使是php的程序员也要重新学习它)。更让人费解的是 这种脚本 越是强大,越容易让人将事务逻辑(business logic )和显示逻辑(presentation logic)混在一起, web">中国站长资讯网破坏了模板的初衷。

如果你既想htmlphp分离,得到更好的视觉设计,又想整个系统有非常强大的扩展能力能够适应html,xml,wml各种界面,而且不用去学习复杂的语法的同时提供较高的运行效率,那么这就是一个相当有挑战性的问题了。坏消息是目前还没有一个成熟的模板真正能够达到这样的要求,好消息是完成这样的一个模板并不是很难,如果你尝试过zope或者是coldfusion就会发现这种模板的影子, wact 和 phptal 就是在向这个方向发展,应该很有前途)。

模板和数据的结合(模板的调用)方式主要有两种:推的方式和拉的方式。推的方式是用php将数据推给模板,就是说需要程序员明确地为模板中的每一个变量赋值,将他们绑起来。

而拉的方式则像把phphtml 混在一起一样,模板中的变量主动把数据拽进来。

说到模板就不能不提到另外两种东西: phphtmllib 和 quickform 这两种东西是用传统的方式来通过各种页面构件来完成html的页面的 整个页面的构造完全掌握在程序员手里,也许很多编写过传统gui桌面程序的程序员更习惯这种方式。

更加漂亮的方案
如果做商业软件的话,flash应该是更漂亮的方案(别搞错了,别以为就你知道php支持ming 和swf库可以动态生成 flash,我说的不是这个。) 我要说的是支持flash remoting 的方案,这种东西才是真正有意义的phpflash的结合。由视觉设计师完成flash部分,php 程序员通过 flash remoting 的方式将 数据发送到 flash 做成的客户端中。 目前有几种方案:

amfphp
http://www.amfphp.org/ 由于macromedia flash remoting 传输数据时 使用的是一种特有的更加高效数据格式, 所以amfphp通过分析数据格式,在服务器端构造了相应的php类来接收,解析和编码这些数据从而达到交换信息的功能(就像samba一样,应该属于一种 hacking 吧)。

phpobject
http://ghostwire.com/resources/phpobject/ phpobject 则采用了另外一种方法,通过在flash中嵌入一些actionscript的组件通过开放的格式soap来传送数据。

cabron connectort
http://cabron.sourceforge.net/ cabron connector 采用了传统的post方法结合cde (compact data exchange)格式,同样需要在flash中嵌入一些actionscript的组件来交换数据。

nkconnect php connector
http://nuthing.com/flashconnect/ 采用了wddx包装数据。
其实关于php的模板还牵扯到很多其它的问题,一时半会我也只能写这么多了,有时间了我会写到书里的web">中国站长资讯网

你的想法呢?
  


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons