热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

phpBB编码标准规范-PHP源码

ec(2);以前发过,今天又校对了一下,也当是自己又重新温习了一遍,又有新的感觉。不愧是久负盛名的开源项目,编码规范简单精练,切中要害。希望能对大家有所帮助,欢迎交流看法。 phpBB编码标准规范如果您对原手册内容有注解或建议,请发电子邮件至nate@phpbb.com;如果您对本文翻译有什么意见或建议,请联系QQ78045595,或发电子邮件至gao

以前发过,今天又校对了一下,也当是自己又重新温习了一遍,又有新的感觉。
不愧是久负盛名的开源项目,编码规范简单精练,切中要害。
希望能对大家有所帮助,欢迎交流看法。

phpBB 编码标准规范

如果您对原手册内容有注解或建议,请发电子邮件至 nate@phpbb.com ;
如果您对本文翻译有什么意见或建议,请联系QQ78045595,或发电子邮件至gaogan at gmail dot com.

编辑器设定

制表符 vs 空格:为了此事尽可能地简单,我们使用制表符,不用空格。 你可以随便设定编辑器使用多少空格显示制表符,但是必须保证当你保存文件时,它保存的是制表符而不是空格。 这样,我们每个人都可以让代码以我们喜欢的方式显示,同时不破坏实际文件的布局。

换行: 确保编辑器将文件保存为 Unix 格式。这意味着以换行符终止一行,而不是在 Win32 里那样用一个 CR/LF 对,也不是 Mac 所用的某种方式。任何规范的 Win32 编辑器应该做到这点,但这并不见得总是默认的。你需要熟悉你的编辑器。如果你需要有关使用 Windows 文本编辑器的建议,应该去咨询它的开发者。他们中有些人在 Win32 中做编辑工作。

命名约定

在我们的命名约定中,不会使用任何形式的匈牙利命名。我们很多人相信,匈牙利命名是导致代码混乱的一种主要手法。

变量名称:变量名应当全部小写,并且词语之间以单个下划线分隔。

例如: $current_user 是正确的, 但是 $currentuser 和 $currentUser 就不正确。

名称应当是描述性的,并且简明。我们自然不希望使用冗长的句子作为变量名,但是多输入几个字符总好于疑惑于某个变量到底是干什么用的。

循环计数器:允许使用一个单字符变量名的唯一情形是当它作为一个循环计数器的时候。在这种情况下,外层循环的计数器应当始终是 $i。如果有一个循环处于这个循环的内部,它的计数器应当是 $j,进而是 $k,等等。如果循环的计数器是一个已经存在并且名字有意义的变量,本规范并不适用。

例如:


1 for ($i = 0; $i <$outer_size; $i++)
2 {
3 for ($j = 0; $j <$inner_size; $j++)
4 {
5 foo($i, $j);
6 }
7 }
view plain | print | copy to clipboard | ?




函数名称: 函数也应该描述性地命名。这里我们并非在用 C 编程,我们不希望写出诸如“stristr()”此类的函数来。同上,使用单词间用单下划线分隔的小写名称。函数名称中某处最好有一个动词。较好的函数名 称如print_login_status(), get_user_data(),等等。

函数参数:参数遵循和变量名字相同的约定。我们不希望一堆这样的函数:do_stuff($a, $b, $c)。在大部分情况下,我们希望仅仅看看函数的声明,就知道怎样使用它。

总结: 这里的基本哲学是不要为了偷懒而伤害了代码的清晰。但是,必须由一些常识来掌握这种平衡;例如, print_login_status_for_a_given_user() 做得就过火了——这个函数命名为 print_user_login_status() 更好些, 或只是 print_login_status()。

代码布局

新建文件的标准头部:这里是一个头部的模版,它应当包含在每个 phpBB 文件开始


1 /***************************************************************************
2 &nb

<

推荐阅读
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
  • Vue 2 中解决页面刷新和按钮跳转导致导航栏样式失效的问题
    本文介绍了如何通过配置路由的 meta 字段,确保 Vue 2 项目中的导航栏在页面刷新或内部按钮跳转时,始终保持正确的 active 样式。具体实现方法包括设置路由的 meta 属性,并在 HTML 模板中动态绑定类名。 ... [详细]
  • 本文探讨了如何通过最小生成树(MST)来计算严格次小生成树。在处理过程中,需特别注意所有边权重相等的情况,以避免错误。我们首先构建最小生成树,然后枚举每条非树边,检查其是否能形成更优的次小生成树。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文介绍了如何使用jQuery根据元素的类型(如复选框)和标签名(如段落)来获取DOM对象。这有助于更高效地操作网页中的特定元素。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文介绍如何在 Xcode 中使用快捷键和菜单命令对多行代码进行缩进,包括右缩进和左缩进的具体操作方法。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 解决Linux系统中pygraphviz安装问题
    本文探讨了在Linux环境下安装pygraphviz时遇到的常见问题,并提供了详细的解决方案和最佳实践。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文介绍如何通过注册表编辑器自定义和优化Windows文件右键菜单,包括删除不需要的菜单项、添加绿色版或非安装版软件以及将特定应用程序(如Sublime Text)添加到右键菜单中。 ... [详细]
  • 帝国CMS多图上传插件详解及使用指南
    本文介绍了一款用于帝国CMS的多图上传插件,该插件通过Flash技术实现批量图片上传功能,显著提升了多图上传效率。文章详细说明了插件的安装、配置和使用方法。 ... [详细]
author-avatar
mobiledu2502878137
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有