- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 13 章
应用技术
Application Techniques
到现在你应该已经知道了 PHP 语言的很多细节及 PHP 在各种情况下的使用。现在开始介
绍构建实际的 PHP 应用程序时很有用的一些技术,例如类库,模板系统,高效的输出处
理,错误处理和性能调整。
13.1 代码库
Code Libraries
就像你看到的,PHP 自带有很多的扩展库,这些扩展库把大量实用的功能打包到不同的包
(package) 中。你的程序可以调用它们来实现这些功能。 我们在第 9~11 章中介绍过了 GD、
fpdf 和 libxslt 扩展库的使用,另外在附录 B 中列出了几乎所有可用的扩展库的名单。
除了 PHP 自带的扩展库之外,你也可以建立自己的代码库,这样你可以将其用在你的站
点的多个部分。一个常见的作法是将一系列相关的函数存在一个文件里,命名为.inc 文件。
然后在你要使用函数时,你可以使用 require_once( )来包含这个.inc 文件到你的程序代
码中。
3 “ ” require()
提示:注意还有其他 个不同的 包含 类函数可供使用: ,
include_once()和 include()。请了解这 3 个函数的特性并在
最适合的情况下使用。
例如,假设你有一系列函数用来创建 HTML 表单元素,一个函数用来创建 textfield 或
textarea(取决于最大字符数) ,另一个用来创建设置日期的弹出菜单等等。 那么建立一个
函数库把它们集中放置是个好选择。不要往每个页面粘贴这些函数,否则代码会很冗长,
出错的可能性增加,并且清除bug 的难度很大。
302
在将函数放入代码库时,要注意在组合相关函数和包含不常用的函数之间保持一个平衡。
因为当页面加载代码库时,不论函数是否将被用到,代码库中的所有函数都会被解析。虽
然 PHP 的解析器非常快,但不解析肯定更快。同时,也没有必要把函数分到很多个代码
库中,然后在每个 PHP 程序页面都包含很多代码库文件,因为文件访问相对是很慢的一
个操作,打开多个文件要消耗更多资源。
13.2 模板系统
Templating Systems
模板系统(Templating System)可以使网页外观布局和网页的功能代码分离。在大型项目中,
模板可以使设计师专注于设计页面,而程序员专注于编程。模板系统的基本思想就是网页
包含特殊的标签,然后用程序产生的动态内容去替换这些标签。设计师可以仅负责生成
HTML 页面,只需要考虑布局及适合的标签来读取需要的动态内容。而程序员则负责生成
动态内容。
为了更具体地说明,让我们看一个简单的例子。下面的网页要求用户提交一个名字,如果
已经提交,就向用户致谢:
html
head
titleUser Information/title
/head
body
?php if (!empty($_GET[name])) {
//根据提交的值进行处理
?
pfont face=helvetica,arialThank you for filling out the form,
?php echo $_GET[name] ?./font/p
?php }
else { ?
pfont face=helvetica,arialPlease enter the
following information:/font/p
form action=?php echo $_SERVER[PHP_SELF] ?
table
tr
tdName:/td
tdinput type=text name=name //td
/tr
/table
文档评论(0)