内部用DrupalPHP开发规范
- 格式:doc
- 大小:108.50 KB
- 文档页数:10
Drupal开发与建站实现的技术方案一、引言Drupal是一种开源的内容管理系统,为用户提供强大的建站能力和可扩展性。
它以其灵活性和安全性而备受欢迎,并被一些知名品牌用作其网站的内容管理系统。
本文将提供关于Drupal开发和建站实现的技术方案。
二、Drupal开发的基础Drupal是基于PHP语言开发的,因此,对PHP开发的基础要求是必要的。
学会基本的HTML、CSS和JavaScript编程,对Drupal的开发有很大的帮助。
同时,了解Drupal的框架结构,例如模块和主题等概念,是成功开发Drupal网站的关键。
三、Drupal模块的开发Drupal模块是Drupal系统的基础,能够扩展其功能。
模块提供了许多功能,例如表单验证,用户登录认证,搜索等。
模块的开发需要深入理解Drupa核心系统和其API,并遵循Drupal的开发标准。
如需开发自己的Drupal模块,可以在Drupal官方网站上找到详细的文档和教程。
四、Drupal主题的开发Drupal主题允许网站的外观和样式的自定义。
开发Drupal主题需要对Drupal的主题体系有深入的理解。
Drupal主题通常由HTML、CSS、JavaScript和PHP组成。
Drupal主题的开发需要将这些技术深入调和,并学会使用Drupal主题的API。
Drupal主题的开发还需要考虑到用户体验和可访问性等方面。
五、Drupal网站的部署Drupal网站的部署比其他网站的部署复杂一些。
在部署新网站之前,需要选择并安装一些核心模块,例如用户认证和日志记录。
要实现最佳性能,需要考虑优化数据库、配置缓存和CDN等。
Drupal网站的部署需要考虑是否安全,包括在代码中避免潜在的安全漏洞,并确保所有数据和敏感信息都受到保护。
六、总结Drupal开发和建站实现需要对PHP和相关技术有扎实的基础。
为了成功开发Drupal网站,对Drupal核心组件(模块和主题)的深入掌握是必要的。
开发规范与要求范文开发规范是一系列的编码原则、技术规范、文档规范等的集合,旨在确保团队开发的代码质量、可读性、可维护性、可扩展性,并提高团队合作效率。
本文将介绍开发规范的要求以及其对项目开发的重要性。
一、命名规范1.变量、函数、方法的命名应具有清晰的表达意义,使用有意义的英文单词或单词的组合。
2.类名、接口名应使用名词或名词词组,并使用大写开头的驼峰命名法。
3.常量名应使用大写字母加下划线的形式,如:MAX_COUNT。
4.避免使用容易混淆的命名,如:i1,l1,O0等。
二、缩进与排版规范1. 使用合适的缩进风格,如四个空格或一个Tab,统一团队内部的缩进风格。
2.代码块的开始和结束要与其对应的可见的包含结构对齐。
3.行宽应控制在80-120个字符之间。
三、代码注释规范1.对于代码中的每个模块或功能,必须提供必要的注释说明。
2.注释应简明扼要、准确清晰,解释代码的关键逻辑以及设计思想。
3.注释应使用英文书写,并遵循一定的规范,如在注释前使用特定的修饰符以区分说明的对象。
四、代码规范1.遵循单一职责原则,每个函数、方法只负责一个功能,尽量避免一个函数或方法实现多种功能。
2.遵循开闭原则,尽量使用扩展而非修改已有的代码。
3.避免使用变量的魔法数值,应提取为常量或配置项。
4.代码尽量简单清晰,可读性强,避免冗余的代码和复杂的逻辑结构。
五、测试规范1.编写单元测试代码,保证代码的正确性和稳定性。
2.合理组织测试用例,覆盖代码的各种情况,包括正常情况和异常情况。
3.定期运行测试用例,及时发现和解决问题,确保程序的健壮性。
六、文档规范1.编写开发文档和用户文档,清晰描述程序的设计思路、开发流程、代码的使用方法等。
2.文档内容应准确、详尽,方便其他开发人员和用户了解项目的细节。
开发规范对于项目开发具有重要的作用:1. 提高代码质量和可维护性:规范的代码易于阅读和理解,减少错误和bug的产生,提高代码的可维护性和可读性。
漫谈企业级Drupal架构应用与部署PDF版本在以drupal为框架的企业级或者商业网站的开发与部署中,不仅仅只是对drupal的开发以及自定义模块和drupal API的开发和应用,在整个企业级应用中,Drupal只是作为Web框架中的一个环节,其他方面,如数据库架构、负载、持续集成等都是必须考虑的环节,本文就Drupal商业级应用中必须的结构与部署方案做一个简单的探讨。
作为中小型商业网站,以Drupal为框架开发是一个较好的选择,除了Drupal开发本身,我们还必须掌握Drupal相关以及其他部署方面的环节,才能得以网站运营更加正常。
1. 服务器起步阶段建议用VPS或者云主机,(Linode是不错的选择),正式上线之后,建议配置一台服务器,随着流量增大可以增加一台服务器,web和db分开。
访问量再次增加,我们可以增加到3台服务器。
3台服务器的架构图其中DB和LoadBalancer为同一台机器,故DB比较重要,硬件资源以及备份策略要占优。
这种架构的优势就是web节点可以随意切换。
4台服务器的结构就是增加一台MySQL的slave节点,以及将这个节点可以作为一个Loadbalancer的备份。
4台服务器的Drupal部署结构5台及多台服务器可以参考如下的结构,就是把LB独立出来,web节点和db可以随意扩展,具体需要分析性能的瓶颈在哪里,然后按需增加服务器。
5台及以上多台服务器架构2.硬盘以及存储结构服务器的数据存储非常重要,从硬件的角度来说,我们需要有备份及容错机制。
常见的方式是RAID,推荐使用RAID5,经济实惠的方案。
如果有4块,可以做RAID10,性能和备份的综合体,比RAID5更高效。
从软件硬件的实现角度来说,作为服务器,推荐使用硬件RAID,不要使用软件RAID。
SSD和HDD的选择,这个可以依据成本和预算,SSD肯定比HDD要好很多。
硬盘的分区的划分推荐使用LVM,虽然会有些性能上的损失,但从其带来的有点来说,这点不足是可用忽略不计的。
php扩展开发参考手册摘要:1.PHP 扩展开发简介2.PHP 扩展开发环境搭建3.PHP 扩展开发流程3.1 创建扩展项目3.2 编写扩展代码3.3 配置扩展3.4 测试与调试4.PHP 扩展开发技巧4.1 函数与类4.2 内存管理4.3 错误处理4.4 国际化支持5.PHP 扩展开发实例5.1 创建一个简单的扩展5.2 实现一个文件上传扩展6.PHP 扩展开发常见问题及解决方法7.PHP 扩展开发总结正文:PHP 是一种广泛应用于Web 开发的脚本语言,通过扩展开发,可以为PHP 增加新的功能和特性。
本文将详细介绍PHP 扩展开发的各个方面,帮助开发者更好地进行PHP 扩展开发。
## PHP 扩展开发简介PHP 扩展开发是指使用C 或C++等编程语言,为PHP 内核编写扩展模块,从而实现新的功能或改进现有功能。
通过扩展开发,开发者可以自定义PHP 的行为,提高开发效率和运行性能。
## PHP 扩展开发环境搭建进行PHP 扩展开发前,需要先搭建开发环境。
建议使用具有C/C++编译器的Linux 系统,如Ubuntu。
安装好PHP 及其开发工具包(如PHP-DEV、PHP-GTK 等),并配置好相关的开发环境。
## PHP 扩展开发流程### 1.创建扩展项目首先,创建一个新的目录,用于存放扩展代码。
在该目录下创建一个名为`ext_info.ini`的配置文件,用于描述扩展的基本信息,如名称、版本等。
### 2.编写扩展代码根据需求,编写扩展的核心代码。
通常包括以下部分:- 初始化:在PHP 启动时,扩展需要进行一些初始化工作,如注册事件处理器、初始化数据结构等。
- 功能实现:实现扩展的核心功能,如自定义函数、类等。
- 资源释放:在PHP 结束时,扩展需要释放资源,如关闭文件、释放内存等。
### 3.配置扩展修改`ext_info.ini`文件,添加扩展的配置项。
这些配置项将决定扩展在PHP 中的加载方式、名称等。
在本教程中,我们将会建立一个模块,这个模块将列出最近一周内所有新建立的内容节点,比如日志或者论坛的帖子。
本章将讲述如何建立最初的模块文件和目录。
开始之前如果您需要用PHP来查出您站点上的错误,请访问此链接。
它将告诉您如何更改Drupal 的设置,使drupal显示错误信息。
为您的模块命名建立模块的第一步是为它取一个不太长的名字。
这个名字将被用在所有的模块文件名和方法名中。
所以这个名字必须以字母开头并只能有小写字母和下划线。
比如,我们会用"current_posts"作为一个模块名称。
注意:一定要确保根据以上规则来取名,因为它将被用于模块名和方法名的前缀。
当您运行drupal“钩子“时(请参看后面的章节),drupal将只能识别拥有与您模块文件名称相同前缀的钩子。
请注意不要使用与您站点所有主题相同的名称,这样会使drupal混淆。
创建一个模块目录和模块文件假如我们决定用"current_posts“的模块名,我们将会在drupal的根目录的以下路径(sites/all/modules /current_posts)创建一个目录。
或者如果您要把自己的自定义模块与其他模块区分开,您也可以选择这个路径(sites/all/modules/custom /current_posts)。
然后在sites/all/modules/currents_posts目录创建一个名为current_posts.module的文件。
注意drupal 并不识别扩展名为.php的文件。
如果您为模块添加了php的扩展名,那将不会被识别。
drupal 只识别扩展名为.module的php文件。
在Drupal6中,sites/all /modules/是存放自定义模块的理想目录(sites/all/themes/是存放自定义主题的理想目录),因为这个目录存放这所有只与您的站点相关的模块和主题,在您以后升级您的核心模块时,这些自定义模块和主题不会被改写。
如何使用Drupal建立网站第一章:介绍DrupalDrupal是一款开源的内容管理系统(CMS),它使用PHP语言开发,是建立网站的理想工具之一。
它能够帮助开发者构建高度可定制的网站,提供丰富的功能和模块,同时也具有良好的安全性和可扩展性。
第二章:安装Drupal在开始建立网站之前,首先需要安装Drupal。
安装Drupal是一个相对简单的过程,只需下载Drupal的最新版本,并将其解压到Web服务器的根目录。
然后,创建一个数据库,并将相关信息填入Drupal的安装向导中,即可完成安装。
第三章:选择主题Drupal提供了许多免费和付费的主题,用于定制网站的外观和风格。
在选择主题时,应该考虑网站的定位和目标受众,选择一个符合需求的主题。
安装主题后,可以根据需要进行自定义调整,使其与自己的品牌形象相匹配。
第四章:添加模块Drupal的模块是其功能的核心,可以扩展网站的功能。
在Drupal的官方网站上,有大量免费和付费的模块可供选择。
根据网站的需求,选择并安装适当的模块。
一些常用的模块包括:用户管理、SEO优化、内容管理、社交媒体集成等。
第五章:创建内容Drupal是一个内容驱动的CMS,因此创建高质量的内容是建立成功网站的关键。
在Drupal中,可以创建各种类型的内容,如文章、图片、视频等。
通过使用Drupal的内容编辑功能,可以轻松地添加、编辑和删除内容,并为内容添加标签和分类,以便让用户更容易找到所需信息。
第六章:配置用户权限Drupal具备强大的用户权限管理功能,可以控制网站的访问权限。
管理员可以创建不同角色的用户,并分配不同的访问权限。
这样,不同用户能够根据自己的角色和权限进行操作,提高网站的安全性和管理效率。
第七章:优化SEOSEO(Search Engine Optimization)对于网站的排名和流量至关重要。
Drupal提供了许多优化SEO的功能和模块,如XML站点图、友好的URL和页面标题优化等。
开发规范文档1. 引言。
开发规范文档是为了规范团队成员在开发过程中的行为和规范,以提高开发效率、降低错误率、提高代码可维护性和可读性而制定的。
本文档旨在为开发人员提供一套统一的规范,以便大家在开发过程中能够更加高效地协作,提高团队整体的开发水平。
2. 代码规范。
2.1 命名规范。
变量名、函数名、类名等命名应具有描述性,能够清晰地表达其用途。
变量名使用驼峰命名法,类名使用大驼峰命名法,常量名使用全大写下划线分隔。
禁止使用拼音或无意义的命名,以及使用中文命名。
2.2 缩进和空格。
使用4个空格作为一个缩进,禁止使用Tab键。
运算符两侧应有空格隔开,增强代码的可读性。
2.3 注释规范。
代码中应有必要的注释,注释应该清晰明了,能够帮助他人理解代码的用途和实现方式。
禁止使用无意义的注释,注释应该与代码同步更新。
3. 版本管理规范。
3.1 分支管理。
项目应该有主分支和开发分支,主分支用于发布稳定版本,开发分支用于开发新功能。
每个新功能应该在一个独立的分支上进行开发,开发完成后再合并到开发分支。
3.2 提交规范。
提交代码时应该写清楚本次提交的内容,禁止一次性提交大量无关的修改。
提交信息应该清晰明了,能够帮助他人理解本次提交的目的和内容。
4. 文档编写规范。
4.1 文档格式。
文档应该使用统一的格式进行编写,包括标题、目录、正文等部分。
文档中的图片应该清晰可见,禁止使用模糊不清的图片。
4.2 内容规范。
文档内容应该清晰明了,能够帮助读者快速理解文档的内容。
文档中的代码应该清晰可读,禁止使用混乱的代码示例。
5. 测试规范。
5.1 单元测试。
每个功能模块应该有对应的单元测试,保证功能的正确性和稳定性。
单元测试应该覆盖尽可能多的代码路径,以提高测试的覆盖率。
5.2 集成测试。
在开发完成后应该进行集成测试,保证不同模块之间的协作正常。
集成测试应该模拟真实的使用场景,以保证系统的稳定性和可靠性。
6. 总结。
开发规范文档是团队协作的重要工具,能够帮助团队成员更加高效地协作,提高团队整体的开发水平。
Drupal专业开发指南第1章Drupal 工作原理(1)第1章Drupal 工作原理(2)对请求提供服务第2章创建一个模块(1)第2章创建一个模块(2)第3章模块特定设置(1)第3章模块特定设置(2)第4章Drupal 菜单(menu)系统(1)第4章Drupal 菜单(menu)系统(2)第4章Drupal 菜单(menu)系统(3)第5章Drupal 数据库层(1)第5章Drupal 数据库层(2)第6章Drupal 用户(1)第6章Drupal 用户(2)hook_user 用户注册和登录流程第6章Drupal 用户(3)第7章Drupal 节点(Drupal node)(1)第7章Drupal 节点(Drupal node)(2)第7章Drupal 节点(Drupal node)(3)第8章Drupal 主题系统(Drupal theme)(1)第8章Drupal 主题系统(Drupal theme)(2) 安装主题第8章Drupal 主题系统(Drupal theme)(3) 模板文件第8章Drupal 主题系统(Drupal theme)(4) 高级特性1 覆写主题函数第8章Drupal 主题系统(Drupal theme)(4) 高级特性2 添加和操纵模板变量第8章Drupal 主题系统(Drupal theme)(4) 高级特性3 定义新的区块区域第9章Drupal 区块(Drupal block)(1)第9章Drupal 区块(Drupal block)(2)区块钩子方法第9章Drupal 区块(Drupal block)(3)创建区块第10章Drupal 表单API(form API)- 表单处理流程第10章Drupal 表单API(form API)- 创建基本的表单第10章Drupal 表单API(form API)- 创建基本的表单(2)第10章Drupal 表单API(form API)- 创建基本的表单(3)第10章Drupal 表单API(form API)- 创建跨页面表单第10章Drupal 表单API(form API)- 表单API 属性第10章Drupal 表单API(form API)- 表单元素第11章Drupal 过滤器系统(filter)(2)创建一个定制的过滤器第11章Drupal过滤器系统(filter)(1)第12章搜索和索引内容(1)第12章搜索和索引内容(2) 索引器第12章搜索和索引内容(3) 对非节点的内容进行索引第13章Drupal 文件(file)(1)第13章Drupal文件(file)(2)第14章在Drupal 中使用分类(Drupal taxonomy)(1)第14章在Drupal 中使用分类(Drupal taxonomy)(2)第14章在Drupal 中使用分类(Drupal taxonomy)(3)第15章Drupal 缓存(cache)(1)第15章Drupal 缓存(cache)(2)页面缓存第15章Drupal 缓存(cache)(3)缓存API第16章Drupal 会话(session)(1)第16章Drupal 会话(session)(2)会话生命周期第17章在Drupal 中使用jQuery(1)第17章在Drupal 中使用jQuery(2)第17章在Drupal 中使用jQuery(3)编写一个使用jQuery 的Drupal 模块第18章Drupal 的本地化及中文化(1)第18章Drupal 的本地化及中文化(2)第19章XML-RPC第20章编写安全的代码(1)处理用户输入第20章编写安全的代码(2)处理用户输入第20章编写安全的代码(3)db_query()第21章Drupal 开发最佳实践(1)第21章Drupal 开发最佳实践(2)第21章Drupal 开发最佳实践(3)第22章Drupal 优化(2)第22章Drupal优化(1)第23章Drupal 安装过程profile附录2 Drupal 常用资源第1章Drupal 工作原理(1)在这一章,我们为你给出一个Drupal 的概貌。
软件开发规范标准一、总则为了规范化管理员工日常工作,制定本方案。
二、前后端协调规范1.业务逻辑相关代码放在后端,前端只处理页面展示。
2.参数校验前后端都需要处理,前端新增、修改、删除逻辑需要加入loading防重复提交。
3.后端接口编写完成后需要实时告知前端开发,前端使用Swagger文档进行对接。
三、开发测试协调规范1.前端联调完接口后需要实时告知测试人员可以进入测试。
2.测试测出的BUG告知负责功能的开发人员,禁止因为前后端的问题跟测试人员推诿,应当由开发人员自行排查跟协调。
3.生产发版过程中,有发版内容的开发人员应等待发版并通过测试验证成功后才可下班。
四、后端规范4.统一工具a)代码编辑工具:IntelliJ IDEAb)数据库关系设计工具Power Designerc)流程图编辑工具微软Visio5.代码规约整体遵循阿里巴巴java规约,在idea中使用插件:Alibaba Java Coding Guidelinesa)包名定义包名全部使用小写字母,例如:com.myzy.xxxb)类命名首字母大写,遵守驼峰命名法,如:ThisIsClassNamec)常量命名常量名称必须全部大写,以下划线分割,如:final static int DEDAULT_HTTP_PORT =80d)分层领域模型规约DTO(Data Transfer Object):数据传输对象,API层接口定义业务数据输出对象。
VO(Value Object):请求入参。
DO(Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。
其他各moudule内部可直接使用原始的pojo命名不必强加后缀,造成多次convert6.数据库设计规范a)数据表命名名称统一用小写,以下划线分割。
业务数据表统一tb_b_开头,如tb_b_trade资料表统一tb_f_开头,如tb_f_user业务基础数据配置表统一td_b_开头,如td_b_city系统参数配置表统一td_s_开头,如td_s_parameter日志表统一tb_l_开头,如tb_l_color中间表统一tb_m_开头,如tb_m_location_patientb)公共字段定义c)用于统计是否的字段统一使用tinying(1)禁止使用varchar定义时间类型,没有特殊需求尽量使用timestamp高查询需求的数据表禁止定义大字段d)索引设计尽量在开发前理清业务需求查询场景,按需求合理设置索引,不要过多添加索引。
Drupal核心功能介绍与使用教程
发表于: CMS Hacker | 作者: 魑魅魍魉
Drupal是一个基于PHP语言的开源内容管理系统(Content Management System),所以文本数据以及图形、音频等其它文件类型的文本指针都以数据库的形式储存,用户可以通过浏览器对Drupal发送请求,而Drupal 刚动态的从数据库中读取数据生成静态网页发送给用户。
通过Drupal系统,我们可以在不修改任何一句程序语言的前提下实现很强大的功能,比如多用户博客(Blog)系统,论坛(Fourm)系统,联合协作文档编写系统(Collaborative Book),多用户访问权限级别分配系统等,这些在你成功安装Drupal系统之后就能很轻易的实现。
而如果再为Drupal核心系统安装Module以扩展其功能,那么,Drupal几乎可以完成任何你想让它完成的事情,当然这也得Drupal的使用有一定的经验来选择正确的Module或者有良好的程序编写功底来编写自己需要的功能的程序模块,这些都是后话了。
在本文中,我将对Drupal的核心功能(即安装Drupal之后不进任何Module扩展下的功能)进行一个详细的功能及使用方法的介绍。
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------。
前言常言道,“没有规矩,不成方圆”。
良好的编程风格与规范对开发者以及项目管理人员都是非常重要的。
当一个软件项目尝试着遵守公共一致的标准时,可以使参与项目的开发人员更容易了解项目中的代码、弄清程序的状况。
使新的参与者可以很快的适应环境,防止部分参与者出于节省时间的需要,自创一套风格并养成终生的习惯,导致其它人在阅读时浪费过多的时间和精力。
而且在一致的环境下,也可以减少编码出错的机会。
缺陷是由于每个人的标准不同,所以需要一段时间来适应和改变自己的编码风格,暂时性的降底了工作效率。
从使项目长远健康的发展以及后期更高的团队工作效率来考虑暂时的工作效率降低是值得的,也是必须要经过的一个过程。
标准不是项目成功的关键,但可以帮助我们在团队协作中有更高的效率并且更加顺利的完成既定的任务。
第1章、排版规则1.1、缩进代码缩进使用2个空格,而不是tab键,因为在不同的编辑器查看代码时,tab键的显示出来的长度根是不一样的,虽然空格会增加文件的大小,这些误差是微不足道的。
在很多编辑器中,都可以设置将tab键设置为2个空格,如果你习惯使用tab键的话。
1.2、空格规则空格应该在以下情况下使用:1.关键字与(之间应该有1个空格,例:1 while($user->uid > 0) {2.函数名和(之间不应该有空格,例:1 function arg() {3.一元操作符与其操作数之间不应该有空格,除非操作数是个单词,例:typeof。
4.每个在控制部分,例for语句中,“;”后必须跟一个空格。
5.每个,后应跟一个空格。
1.2.1、逻辑运算符前后都必须加空格,加一减一运算除外1 2 3 4 5 6 7 8 91011 // 正确$a== $b; // 错误$a==$b; $a==$b; // 正确$a++;$a--;// 错误$a++; $a--;1.2.2、多个参数分隔时必须加空格1 2 3 4 5 6 // 正确$a, $ab, $c;arg($a, $b, $c); // 错误$a,$ab,$c;arg($a,$b,$c);1.2.3、语法关键字后必须加空格if, for, while, switch等关键字。
例:1 2 3 4 // 正确for($a= 0;$ < 10; $a++); // 错误for($a= 0;$ < 10; $a++);1.3、字符串和变量的连接规则字符串与变量连接使用“.”,且在“.”左右都有1个空格,使用"自动转义变量时必须在变量前后加“{}”1 2 3 4 5 6 // 正确$result= 'file_'. $var; $result= 'file_{var}'; // 错误$result= 'file_'.$var; $result= 'file_$var';1.4、每行一个语句,除非这些语句有很密切的联系,否则每行只写一个语句。
用空行来将逻辑相关的语句分隔开以提高程序的可读性。
正确1 2 3 4 5 $node_types= node_get_types('types', NULL, TRUE);foreach($node_types as$type=> $info) {//}错误1 2 3 4 $node_types= node_get_types('types', NULL, TRUE); foreach($node_types as$type=> $info) {//}1.5、关键字if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要有完整的括号{} 例:正确1 if(NULL == $arg) {2 3 return; }错误1 if(NULL == $arg) return;1.5.1、if格式如下:1 2 3 4 5 6 7 8 9101112131415 if(condition) { //}if(condition) { //} else{}if(condition) { //} else{//}1.5.2、for 格式如下:1 2 for($i= 0; $i< 1; $i++) { //3 }1.5.3、do格式如下:不像其他复合语句,do语句总是以“;”结束。
1 2 3 do{//} while(condition);1.5.4、do 格式如下:1 2 3 4 5 6 switch(expression) { case expression:statements;default:statements;}每一组statements(除了default,应以break、return或者throw结尾。
不要让它顺次往下执行。
)1.5.5、try格式如下:1 2 3 4 5 try{statements} catch(variable) { statements}1.6、数据库查询语句中关键字部分应该大写。
第2章、命名规范命名统一遵守Linux C命名规范,包括PHP、XHTML、CSS、JS。
变量名所有字母都小写,使用“_”作为每个词的分界(CSS中使用“-”,因为很多drupal生成的代码都用“-”(例如区块ID,通常为类似#block-vacation)。
),变量名必须有一定的意义,使程序一目了然。
在项目中,相同意义的变量变量名应该尽量相同,例:drupal项目中$node表示节点,节点在很多地方都使用到,如果命名相同,一眼就可知道这是个节点,可以使用节点的相关函数操作,如要区分多个节点,则可以加上有意义的字母在前,例:$book_node、$color_node。
2.1、常量PHP的常量应该全部使用大写字母,并使用_来正确的分隔字词。
常量使用模块名来作为前缀,这样个可以避免常用字词的冲突。
例:你的模块名为test.module,那么常量名字应该如例TEST_USER。
1 define('TEST_CONFIRM_UID', 0);2.2、全局变量全局变量命名规则:$_模块名(主题名)_全局变量名例:1 2 3 4 // 错误globe $records;// 正确globe $_test_records;2.3、静态变量静态变量使用前缀s,例:1 $s_records;2.4、临时变量不要将在循环中频繁使用的临时变量如$i、$j等用于其他用途。
2.5、函数命名函数名采用C GUN的惯例,所有字母使用小写字母,规则:模块名+_+函数名,要注意的是命名时不要与drupal的相关hook重名。
2.6、文件名命名文件名应该都是小写的。
例外情况就是文档文件,它们全部大写并且类型为txt文件。
例如:LICENSE.txtREADME.txtINSTALL.txt第3章、编程规范系统统一使用时间戳time()作为时间标志,存入mysql时使用INT(10)类型写入。
引号使用单引号,只有当引号重叠时才使用双引号,这样每进程可以省几百K内存。
统一使用,禁止使用3.1、数组定义规则key、值必须使用单/双引号。
1 2 3 4 5 6 7 8 9 10 // 正确array('name'=> 'myname', 'type'=> 'mytype' );// 错误array(name => myname,type => mytype);3.2、不采用缺省方式测试变量/函数1 2 3 // 正确if($user> 0) { //4 5 6 7 8 910111213141516 }if(arg(1) != '') { //}// 错误if($user) {//}if(arg(1)) {//}3.3、文件结构规则drupal模块开发规则如下(以模块名为book为例):主模块(book.module)包含hook_help()、hook_init()、hook_menu()以及该模块的一些共用函数,如需要调用其他模块的函数(必须启用的核心模块除外),应先判断该模块是否开启(例:module_exists('book');)。
book.admin.inc(管理页面相关代码)、book.page.inc(用户操作所用代码),应该归类放置,使用hook_menu中“file”键指向。
模块中使用到的一些js插件,如jquery插件,应放在模块目录中js文件夹中。
3.4、数据库操作规则∙查询1条以及多条记录时,使用db_query_range()。
∙每次查询如果可以都应该加上ORDER针对INDEX排序。
3.5、注释注释文档遵循Doxygen注释样式,注释块语法如下(包括css、js):1 2 3 /*** Implementation of hook_cron(). */4 5 6 function node_cron() {db_query('DELETE FROM {history} WHERE timestamp < %d', NODE_NEW_LIMIT); }注释块必须紧挨着放在函数前,中间不存在空行。
drupal能够理解下面所列的Doxygen构造体,具体构造体作用请参照Doxygen文档:∙@mainpage∙@file∙@defgroup∙@ingroup∙@addtogroup∙@param∙@return∙@link∙@see∙@{∙@}3.5.1、// $id$“// $id$”用于追踪版本号以及最后修改的用户,以注释方式放在每个文件最前头(包括js、css等所有需要提交到版本库的文件)。
当把代码提交到CVS(SVN),系统将会自动对这一标签进行解析和扩展,变成如下:1 // $Id: node.module,v 1.947.2.29 2010/12/15 12:53:33 goba Exp $第4章、编写安全的代码4.1、处理用户输入输出非drupal hook_form生成的表单(包括一些ajax)提交上的数据,应该进行安全过滤。
以下列出drupal提供的一些过滤函数。
∙check_plain(HTML),转换为纯文本,将特定字符转换为HTML实体。
∙filter_xss(HTML),使用一组标签,检查和清理HTML∙check_markup(HTML),使用过滤器(可以自定义)过滤∙drupal_urlencode(URL),将特定字符编码为%0x∙check_url(URL),清理url中有害协议,例如javascript:runevilJS()通常在输出中,应该用t()函数,来过滤输出,以便支持drupal的多语言模块。