首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

Drupal代码编撰规范

2014-04-29 
Drupal代码编写规范? data: progress+progress,? success: function(){? ? ? ? ? ?? }})10.在读取添加

Drupal代码编写规范

? data: "progress="+progress,

? success: function(){

? ? ? ? ? ?

? }

});

10.在读取添加编辑删除entity相关内容时,如节点,分类,用户,评论等,都可以使用entity_metadata_wrapper()来实现,避免因字段结构不明产生的问题。

11.不要直接查询核心或第三方模块提供的表,要以API的方式调用,自己的功能模块写的表也是,模块都要提供相应的API封装。

12.若是自定义显示用户自行输入保存到数据库的内容,显示时要加输入格式过滤函数:check_markup, 或check_url, check_plain

12.尽量使用:Drupal.behaviors.*** 来代替jquery的页面载入事件:$(document).ready

14.尽量将.module中的API函数分散放到不同的inc文件中,按需加载(module_load_include()),减少.module的代码加载量

15.输出特定的日期格式时,要使用format_date函数,以使用系统内定义好日期格式,方便统一管理。

如:format_date($comment->created, 'short'); 而不要自己写:date('Y-m-d', $comment->created);

16.不在代码中设置特殊的变量值,如ip地址,帐号信息等。也不用常量,这些都放在variable中,提供一个变量设置界面,别忘了赋好权限。就像google分析模块,phpmailer模块等一样。

好处:1.有利于权限控制,只有相应管理员角色才能在正式站点配置这些敏感信息。 2.防止同一个系统,多个项目并存的开发模式下,代码之间有太多敏感的不同之处,不能方便的覆盖,改一个还得去再改另一个。

17.非在文件字段中上传的文件,例如是直接放在文件目录里被引用的文件,文件名尽量不要是中文,否则有些服务器的系统环境里,svn无法checkout

18.给模板增加变量时,可以先判断哪些页面需要这个变量,再去处理,比如在 _preprocess_page 里,每个页面加载时都会通过这个预处理函数去处理变量,

如果有变量的生成比较麻烦,花时间长,那么对每个页面都会有性能损失,所以可以只针对某些页面路径去定义。

19.hook_init里的代码是不会进入缓存中的,慎用!

20.非全局性css和js,在模块中使用 drupal_add_css, drupal_add_js 来加载,并尽量使用文件形式,而非在模块代码里加载。

21.如果在上线维护阶段,且是多人协作,那么做一个任务时,如果增加了新模块,且代码中有依赖此模块(如:调用了此模块的API),一定要在代码中判断新模块是否已经存在,如果不存在,也不会报错,影响其他成员的开发环境。

22.如果因为不得已的原因修改了第三方模块,应该把该模块从contrib文件夹转移到contrib_custom文件夹。已表明是修改了第三方模块。

23.词汇表使用时,尽量不使用vid,要使用machine_name。如:menu中有分类的参 数,$items['admin/structure/taxonomy/%taxonomy_vocabulary_machine_name'] ,SQL中有条件是某个词汇表时,使用词汇表的machine name,而不是vid。views中如果要使用词汇表作为动态参数,也要注意尽量使用词汇表的machine name。

分类导出再导入到另一个系统里后,vid可能会变化,但是machine name只要没有重复的就会保持,所以通过machine name调用词汇表的功能还可正常使用。

24.如果修改了第三方模块的代码,应该将其转移到custom目录中,以表明此模块被修改了,不要再直接覆盖升级。

热点排行