PHP 高级编程(1/5) - 编码规范及文档编写
PHP 高级程序设计学习笔记20140612
软件开发中的一个重要环节就是文档编写。他可以帮助未来的程序维护人员和使用者理解你在开发时的思路。也便于日后重新查看代码时不至于无从下手。文档还有一个重要的作用,在不用了解要访问对象的细节情况下也能很好的在对象之间进行交互。文档的编写有一些成熟的行业标准格式,遵守这些行业标准将有助于创建易于阅读的代表,并使自动生成手册成为可能。
编码规范
编码规范可能很多开发人员都有各自的观点也意见,且大家不尽相同。其实只要团队成员之间达成一致,遵循同一个标准就好。
PHP社区百花齐放,拥有大量的函数库、框架和组件。PHP开发者通常会在自己的项目中使用若干个外部库,因而PHP代码遵循或尽量接近 同一个代码风格就非常重要,可以让开发者方便地把多个代码库集成在自己的项目中。框架互操作组(即PHP标准组)发布了一系列推荐风格。其中有部分是关于代码风格的,即PSR-0,PSR-1,PSR-2和PSR-4。通常情况下,你的PHP代码应该遵循其中一项或多项标准,从而其他开发者可以方便地阅读和使用你的代码。这些标准都是在前一个标准 上附加新的规则,所以使用PSR-1就同时要求遵循PSR-0,但可以不遵循PSR-2。
- 阅读PSR-0
- 阅读PSR-1
- 阅读PSR-2
- 阅读PSR-4
- Read about PEAR Coding Standards
- Read about Zend Coding Standards
- Read about Symfony Coding Standards
文档编写 - 注释的类型
PHP 中常用的三种注释方法,注释是增加程序可读性、可维护性的一种方法,而不是唯一方法。可读性和可维护性主要还是在代码命名,项目组织处提高。
//这是一个单行注释类型 /*
这是一个多行注释类型
第二行注释
*/ /**
*
* 这种形式的注释被称为 文档注释
*/
第一种注释可以说是给人看的,一般用来比较简短的注释。第二种,则用在需要大量注释的代码中。第三种注释被称为文档注释,可以被及其解释,且能以固定的格式放到手册中去。注释的种类主要包括:类的注释,属性注释、方法注释、变量注释以及关键算法、重要代码实现等。所有的这些部分编织在一起,使得人们在以后的时间里能够准确的知道你干了什么,为什么这么做。
文档编写 - 文法解析
从编程语言到可执行代码的转换过程叫做文法解析。当文法解析器遇到一个正常的注释时,它会识别它并忽略它,并且清理掉注释中的数据,因此一般的注释是无法迁入元数据的。
元数据
元数据的定义是 data about data 。是一种广泛存在的现象,在许多领域有具体的定义和应用。其被定义为:描述数据的数据,对数据及信息资源的描述性信息。PHP包含了大多数编程元素的元数据。然而,你可能需要嵌入更多的元数据,因为元数据在自动生成文档方面非常有用。这种功能可以通过文档注释的解析来模拟。如果创建遵循特定格式的文档注释,解析器可以将注释自动转换称为有意义的文档。
PHPDoc
PHPDoc 是用于维护PHP文档的解决方案。其为文档注释定一辆一种结构,允许解析器以一致的方式解析它们。有了PHPDoc就可以从嵌入文档中创建手册了。 和所有文档注释一样,PHPDoc 要求必须以/**注释声明开始。PHPDoc 的特殊之处在于标签。 标签由@开始加上一个预定义的标示符表示。关于PHPDoc的更多信息请参考 http://www.phpdoc.org/docs/latest/index.html
PHPDoc 规范的注释
注释块必须以“/**”开始,以“*/”结束。
开始注释和结束之间的每行都以星号(*)开始。
标签必须以 at-sign (@) 开头在新行书写,接着写标
有几个标签支持或需要用类型来表示包含在相关元素的值的类型。这方面的一个例子是“param标记,以确定一个方法或函数参数的类型。
Here is a full listing:
string:A piece of text of an unspecified length.
int or integer:A whole number that may be either positive or negative.
float:A real, or decimal, number that may be either positive or negative.
bool or boolean:A variable that can only contain the state ‘true’ or ‘false’.
array:A collection of variables of unknown type. It is possible to specify the types of array members, see the chapter on arrays for more information.
resource:A file handler or other system resource as described in the PHP manual.
null:The value contained, or returned, is literally null. This type is not to be confused with void, which is the total absence of a variable or value (usually used with the @return tag).
callable:A function or method that can be passed by a variable, see the PHP manual for more information on callables.
下面列出PHPDoc的全部标签:
| @api | @author | @category | @copyright | @deprecated | @example |
| @filesource | @global | @ignore | @internal | @license | @link |
| @method | @package | @param | @property | @property-read | @property-write |
| @return | @see | @since | @source | @subpackage | @throws |
| @todo | @uses | @var | @version |
PHP 高级编程(1/5) - 编码规范及文档编写的更多相关文章
- 自己总结的C#编码规范--7.文档下载 & 总结
今天终于把这一系列的编码规范写完了,这个编码规范算上前面阅读相关书籍,前前后后总共花了一个月的时间,也算是个人的呕心沥血之作了. 本来也没打算把这个系列写的这么长,但是在写的过程中自己搜了相关的网上资 ...
- javaweb 课程设计编码和设计文档
企业办公软件设计文档 1引言 1.1编写目的 OA办公自动化系统详细设计是设计的第三个阶段,这个阶段的主要任务是在OA办公自动化系统概要设计书基础上,对概要设计中产生的功能模块进行过程描述,设计功能模 ...
- Java高级特性 第14节 解析XML文档(2) - SAX 技术
一.SAX解析XML文档 SAX的全称是Simple APIs for XML,也即XML简单应用程序接口.与DOM不同,SAX提供的访问模式是一种顺序模式,这是一种快速读写XML数据的方式.当使用S ...
- 将Html文档整理为规范XML文档
有多种方式可以在.NET 平台进行HTML文件解析.数据提取,其中最简单.稳妥的办法是先使用工具将Html文档整理成XML文档,再通过XML Dom模型或XPath灵活地进行数据处理.SGML便是一个 ...
- Java高级特性 第15节 解析XML文档(3) - JDOM和DOM4J技术
一.JDOM解析 特征: 1.仅使用具体类,而不使用接口. 2.API大量使用了Collections类. Jdom由6个包构成: Element类表示XML文档的元素 org.jdom: 解析xml ...
- VS2010/MFC编程入门之三十九(文档、视图和框架:概述)
前面几节讲了菜单.工具栏和状态栏的使用,鸡啄米本节开始将为大家讲解文档.视图和框架的知识. 文档.视图和框架简介 在VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)创建的单文档工 ...
- 使用ABAP编程实现对微软Office Word文档的操作
SAP ABAP里提供了一个标准的类CL_DOCX_DOCUMENT,提供了本地以".docx"结尾的微软Office word文档的读和写操作. 本文介绍了ABAP类CL_DOC ...
- 可扩展标记语言XML之二:XML语言格式规范、文档组成
大家好,小乐又来了,好久不见!这次接着上次可扩展标记语言XML之一:XML概念,作用,示例,继续讲述XML. 一.格式良好的 xml 1.语法规范: 1).必须有 XML 文档声明: <?xml ...
- HTML文档编写规范
(1)HTML标记是由尖括号包围的关键词.所有标记均以“<”开始,以“>”结束.结束的标记在开始名称前加上斜杠“/”.例如头部标记格式如下所示:<head> ……</he ...
随机推荐
- NodeJs之child_process
一.child_process child_process是NodeJs的重要模块.帮助我们创建多进程任务,更好的利用了计算机的多核性能. 当然也支持线程间的通信. 二.child_process的几 ...
- .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类
.NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...
- 让姑姑不再划拳 码农也要有原则 : SOLID via C#
“姑娘,别这样.我们是有原则的.” “一个有原则的程序猿是不会写出 “摧毁地球” 这样的程序的,他们会写一个函数叫 “摧毁行星”而把地球当一个参数传进去.” “对,是时候和那些只会滚键盘的麻瓜不同了, ...
- javascript之活灵活现的Array
前言 就如同标题一样,这篇文章将会灵活的运行Array对象的一些方法来实现看上去较复杂的应用. 大家都知道Array实例有这四个方法:push.pop.shift.unshift.大家也都知道 pus ...
- HDU1671——前缀树的一点感触
题目http://acm.hdu.edu.cn/showproblem.php?pid=1671 题目本身不难,一棵前缀树OK,但是前两次提交都没有成功. 第一次Memory Limit Exceed ...
- nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证
http模块内部封装了http服务器和客户端,因此Node.js不需要借助Apache.IIS.Nginx.Tomcat等传统HTTP服务器,就可以构建http服务器,亦可以用来做一些爬虫.下面简单介 ...
- submit text3常用快捷键
在网上找了一些submit text的快捷键: Ctrl+D 选词 (反复按快捷键,即可继续向下同时选中下一个相同的文本进行同时编辑)Ctrl+G 跳转到相应的行Ctrl+J 合并行(已选择需要合并的 ...
- Java中的Socket的用法
Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...
- 要想提高PHP的编程效率,你必须知道的要点
1.当操作字符串并需要检验其长度是否满足某种要求时,你想当然地会使用strlen()函数.此函数执行起来相当快,因为它不做任何计算,只返回在zval 结构(C的内置数据结构,用于存储PHP变量)中存储 ...
- FFmpeg + SoundTouch实现音频的变调变速
本文使用FFmpeg + SoundTouch实现将音频解码后,进行变调变速处理,并将处理后的结果保存为WAV文件. 主要有以下内容: 实现一个FFmpeg的工具类,保存多媒体文件所需的解码信息 将解 ...