PHP 高级程序设计学习笔记20140612

软件开发中的一个重要环节就是文档编写。他可以帮助未来的程序维护人员和使用者理解你在开发时的思路。也便于日后重新查看代码时不至于无从下手。文档还有一个重要的作用,在不用了解要访问对象的细节情况下也能很好的在对象之间进行交互。文档的编写有一些成熟的行业标准格式,遵守这些行业标准将有助于创建易于阅读的代表,并使自动生成手册成为可能。

编码规范

编码规范可能很多开发人员都有各自的观点也意见,且大家不尽相同。其实只要团队成员之间达成一致,遵循同一个标准就好。

PHP社区百花齐放,拥有大量的函数库、框架和组件。PHP开发者通常会在自己的项目中使用若干个外部库,因而PHP代码遵循或尽量接近 同一个代码风格就非常重要,可以让开发者方便地把多个代码库集成在自己的项目中。框架互操作组(即PHP标准组)发布了一系列推荐风格。其中有部分是关于代码风格的,即PSR-0,PSR-1,PSR-2和PSR-4。通常情况下,你的PHP代码应该遵循其中一项或多项标准,从而其他开发者可以方便地阅读和使用你的代码。这些标准都是在前一个标准 上附加新的规则,所以使用PSR-1就同时要求遵循PSR-0,但可以不遵循PSR-2。

文档编写 - 注释的类型

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) - 编码规范及文档编写的更多相关文章

  1. 自己总结的C#编码规范--7.文档下载 & 总结

    今天终于把这一系列的编码规范写完了,这个编码规范算上前面阅读相关书籍,前前后后总共花了一个月的时间,也算是个人的呕心沥血之作了. 本来也没打算把这个系列写的这么长,但是在写的过程中自己搜了相关的网上资 ...

  2. javaweb 课程设计编码和设计文档

    企业办公软件设计文档 1引言 1.1编写目的 OA办公自动化系统详细设计是设计的第三个阶段,这个阶段的主要任务是在OA办公自动化系统概要设计书基础上,对概要设计中产生的功能模块进行过程描述,设计功能模 ...

  3. Java高级特性 第14节 解析XML文档(2) - SAX 技术

    一.SAX解析XML文档 SAX的全称是Simple APIs for XML,也即XML简单应用程序接口.与DOM不同,SAX提供的访问模式是一种顺序模式,这是一种快速读写XML数据的方式.当使用S ...

  4. 将Html文档整理为规范XML文档

    有多种方式可以在.NET 平台进行HTML文件解析.数据提取,其中最简单.稳妥的办法是先使用工具将Html文档整理成XML文档,再通过XML Dom模型或XPath灵活地进行数据处理.SGML便是一个 ...

  5. Java高级特性 第15节 解析XML文档(3) - JDOM和DOM4J技术

    一.JDOM解析 特征: 1.仅使用具体类,而不使用接口. 2.API大量使用了Collections类. Jdom由6个包构成: Element类表示XML文档的元素 org.jdom: 解析xml ...

  6. VS2010/MFC编程入门之三十九(文档、视图和框架:概述)

    前面几节讲了菜单.工具栏和状态栏的使用,鸡啄米本节开始将为大家讲解文档.视图和框架的知识. 文档.视图和框架简介 在VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)创建的单文档工 ...

  7. 使用ABAP编程实现对微软Office Word文档的操作

    SAP ABAP里提供了一个标准的类CL_DOCX_DOCUMENT,提供了本地以".docx"结尾的微软Office word文档的读和写操作. 本文介绍了ABAP类CL_DOC ...

  8. 可扩展标记语言XML之二:XML语言格式规范、文档组成

    大家好,小乐又来了,好久不见!这次接着上次可扩展标记语言XML之一:XML概念,作用,示例,继续讲述XML. 一.格式良好的 xml 1.语法规范: 1).必须有 XML 文档声明: <?xml ...

  9. HTML文档编写规范

    (1)HTML标记是由尖括号包围的关键词.所有标记均以“<”开始,以“>”结束.结束的标记在开始名称前加上斜杠“/”.例如头部标记格式如下所示:<head> ……</he ...

随机推荐

  1. In-Memory:内存数据库

    在逝去的2016后半年,由于项目需要支持数据的快速更新和多用户的高并发负载,我试水SQL Server 2016的In-Memory OLTP,创建内存数据库实现项目的负载需求,现在项目接近尾声,系统 ...

  2. 如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成

    阅读目录 前言 建模 实现 结语 一.前言 前面几篇已经实现了一个基本的购买+售价计算的过程,这次再让售价丰满一些,增加一个会员价的概念.会员价在现在的主流电商中,是一个不大常见的模式,其带来的问题是 ...

  3. Android 剪贴板详解

    版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Clipboard 如本文有助于你理解 Android 剪贴板,不妨给我一个 Star.对于码农而言, ...

  4. ASP.NET Core 中文文档 第四章 MVC(3.9)视图组件

    作者: Rick Anderson 翻译: 娄宇(Lyrics) 校对: 高嵩 章节: 介绍视图组件 创建视图组件 调用视图组件 演练:创建一个简单的视图组件 附加的资源 查看或下载示例代码 介绍视图 ...

  5. maven-sprigmvc-mybatis配置

    pom.xml配置 <?xml version="1.0"?> <project xsi:schemaLocation="http://maven.ap ...

  6. 新技术≠颠覆:CIO 要有战略耐心

    新技术≠颠覆:CIO 要有战略耐心 大数据,云时代,互联网思维, 物联网--最近一两年,这些字眼一次次地出现在各种大大小小的CIO会议上和他们的私下交流圈子里,作为对新技术最敏感的人群,一方面他们迫切 ...

  7. BPM费控管理解决方案分享

    一.方案概述费用是除经营成本外企业的最主要支出,费用管理是财务管理的核心之一,加强企业内控管理如:费用申请.费用报销.费用分摊.费用审批.费用控制和费用支付等,通过科学有效的管理方法规范企业费用管理, ...

  8. 用Java代码实现拦截区域网数据包

    起因: 吃饭的时间在想如果区域网内都是通过路由器上网,那如何实现拦截整个区域网的数据包,从而实现某种窥探欲. 思路:      正常是通过电脑网卡预先设置或分配的IP+网关对路由器进行通讯,比如访问百 ...

  9. SQLServer 各版本区别

    SQLServer 2012 新特性 通过AlwaysOn实现各种高可用级别 通过列存储索引技术实现超快速的查询,其中星型链接查询及相似查询的性能提升幅度可高达100倍,同时支持超快速的全文查询 通过 ...

  10. Linux基础介绍【第一篇】

    Linux简介 什么是操作系统? 操作系统,英文名称Operating System,简称OS,是计算机系统中必不可少的基础系统软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心 ...