PHPCMS开发文档里看到PHP编码规范(6)
来源:asp之家 时间:2009-08-18 11:17:00
6.2.书写规则
6.2.1. HTML
所有HTML标记参数赋值需使用双引号包含,例如,应当使用
<input type=”text” name=”test” value=”ok”>
而绝对不能使用
<input type=text name=test value=ok>
。
在任何情况下,产品中的模板文件必须采用手写HTML代码的方式,而绝对不能使用DreamWeaver、FrontPage等自动网页制作工具进行撰写或修改。
6.2.2. 变量
模板中使用的变量,依据作用和出现位置不同,分为几种方式:
l 逻辑体中,即被包围起来的部分,例如这种形式,其中的变量书写规范与PHP程序中完全一致;
开发者需要使用{}将变量括起来,以免出现模板编译错误,可能的情况如下:
l 变量前后含有中括号的或其他敏感字符的(包括但不限于“$”、“’”等),正确的写法为descriptionnew[{$buddy[buddyid]}];
l 数组的下标为变量的,正确的写法为{$extcredits[$creditstrans][title]};
l 其他变量十分复杂的情况。
6.2.3. 语言元素
6.2.4. 缩进
在phpcms的*.html模板文件中,由于具备逻辑结构,故不考虑任何HTML本身的缩进,所有缩进均意为着逻辑上的缩进结构。缩进采用TAB方式,不使用空格作为缩进符号,仅需适当断行即可。例如:
<!--{loop $articles $article}-->
<table cellspacing=”0” cellspadding=”0” border=”0”>
<tr><td>{$article[‘title’]}</tr></td>
</table>
<!--{/loop}-->
7. 文件与目录
7.1.文件命名
所有包含PHP代码的程序文件或半程序文件,应以小写.php作为扩展名,而不要使用.phtml、.php3、.inc、.class等作为扩展名。
普通程序
能够被URL直接调用的程序,例如list.php、index.php,直接使用程序名+.php的方式命名
函数库和类库程序
分别以小写.func.php和.class.php作为扩展名。函数库和类库程序只能被其他程序引用,而不能独立运行。其中不能包含任何流程性的、不属于任何函数或类的程序代码。
流程性程序
以小写.inc.php作为扩展名。只能被其他程序引用,而不能独立运行。其中不能包含任何函数或类代码的程序代码。
模板源文件
以小写.html作为扩展名。模板源文件按照phpcms模板编码规则进行编写,不是可以执行的程序,而只能被phpcms模板编译器所解析,放置于./templates/default或./templates下的其他模板目录下。
模板目标文件
模板文件被编译后自动生成的目标程序,以小写. php作为扩展名,存放于./data/templates目录下。
语言包文件
以小写.lang.php作为扩展名,只能存放模板或程序使用的语言包信息。
缓存文件
此类文件为系统自动生成,以cache_xxx.php、usergroup_xxx.php、style_xxx.php等类似形式命名,存放于./data/cache目录下。
7.2.目录命名
phpcms目录命名以前面《4.4命名原则》的约定为基本准则。在可能的情况下,多以复数形式出现,如./templates、./images等。
由于目录数量较少,因此目录命名大多是一些习惯和约定俗成,开发人员如需新建目录,应与项目组成员进行磋商,达成一致后方可实施。
7.3.空目录索引
请在所有不包含普通程序(即能够被URL直接调用的程序)的目录中放置一个1字节的index.htm文件,内容为一个空格。几乎除phpcms根目录以外,所有目录都属于这一类型,因此开发者需要在这些目录全部放入空index.htm文件,以避免当http服务器的Directory Listing打开时,服务器文件被索引和列表。
附件目录等敏感目录,要在程序中实现相应功能,当新建下级目录时,必须自动写入一个空的index.htm文件,以避免新建目录被索引的问题。