特定于Drupal的最优化
大多数针对Drupal的最优化措施都在软件堆栈的其它层次中进行,也有一些专门针对Drupal本身的最优化措施,这也能使性能得到极大提升。
页面缓存
测试和开发代码
单元测试就是用来将成分分割成不同的独立单元,并决定每一单元的行为是否和期望的一样。尽管Drupal没有一个核心的单元测试API,但它拥有一个相关的学习小组(http://groups.drupal.org/unit-testing),而且它还有一些工具用来帮助开发者创建更高质量的代码。其中最著名的一个就是第3方模块——devel.module。
Devel模块
利用版本控制
版本控制对于任何软件项目都是必须的,同样对于Drupal 社区也不例外。版本控制追踪Drupal中的每个文件的所有的修改。它保存了每个版本的历史信息以及作者。你可以明确的得到一个,关于谁修改了在什么时间以及为什么修改的报告。版本控制也可以简化向公众发布一个新版本的流程。Drupal社区使用经过锤炼的可靠的CVS软件来维护它的版本历史。
开发最佳实践
在本章,你将找到所有的代码小提示和最佳实践,这将使你从Drupal开发者中脱颖而出,并帮你摆脱电脑的折磨。
代码规范
Drupal社区已经达成一致,它的代码基础必须拥有一个标准的外观,从而提高可读性,也使得初学者更容易的学习。社区也鼓励第3方模块的开发者采用这些标准。
行缩进
权限和页面回调
当你编写自己的模块时,需要注意的另一个方面是“access”键,你会在菜单钩子中定义的每个菜单项中用到它。在前面我们用来说明不安全代码的例子中,我们这样使用“access”键:
/*
* Implementation of hook_menu()
*/
function insecure_menu($may_cache) {
$items = array();
使用db_query()来确保查询语句的安全
攻击网站的一个常见方式称为SQL注入。让我们看一个没有考虑安全性的人编写的模块。这个人仅仅想用一种简单的方式列出特定类型节点的所有节点的标题:
/*
* Implementation of hook_menu().
*/
function insecure_menu($may_cache) {
使用filter_xss()
跨站脚本(XSS)是攻击网站的一种常用方式,攻击者可以向一个网页插入他/她自己的代码,然后使用这些代码进行各种破坏活动。
■ Note For examples of XSS attacks, see http://ha.ckers.org/xss.html.
23 小时 12 分钟之前
23 小时 13 分钟之前
1 天 3 小时之前
1 天 3 小时之前
1 天 3 小时之前
1 天 4 小时之前
1 天 4 小时之前
1 天 8 小时之前
1 周 7 小时之前
1 周 3 天之前