1、编码规范:
在Xoops的开发中代码结束必须包含结束标记"?>"
缩进要用四个空格, 不要使用Tab键。
每行不要超过80个字符, 稍微超过也没事, 如120个。
行结束符一换行符结束, 行的结尾不要包含多余的空格。
2、命名规范:
XOOPS核心中所有的类和函数命名必须以 Xoops 作为前缀。
函数名称首字母小写下列情况用 "_" 隔开而不是驼峰式写法
核心函数必须以 xoops_ 为前缀
框架以及其它类库必须以 xoops_[框架和类库标记符]_为前缀
类名字要用驼峰式写法
XOOPS核心中所有的变量定义必须以 $xoops 为前缀, 并且采用驼峰式写法。
私有变量或者局部变量也要用驼峰式写法
第三方应用程序, 包括模块, 不要以 Xoops_ 作为前缀, 但是要有统一的标示前缀
块中类的命名必须以 [模块标记符, 通常为模块目录名称] 作为前缀如:NewbbPost。
模块中函数命名必须以 [模块标记符]_作为前缀如:newbb_getPostCount()
模块中变量命名必须以 $[模块标记符] 作为前缀, 如:$newbbPostCount
3、应用程序接口(API)
当程序开发人员创建一个应用程序接口时,如果使用合成词来定义,使用下划线来隔开,而不是使用驼峰式写法.如果需要使用一个字符串,通常是采用小写字面,最好定义一个常量去使用.
4、类
系统, 内核以及框架中类的命名是带有Xoops的, 如 XoopsUser, XoopsCaptcha. 模块中类命名是以[模块标识符]开头,如 NewbbPost
5、接口
接口类的命名规则与其他类的命名规则类似,必须以单词"Interface"结尾如: XoopsLogger_Interface
6、文件命名
对于所有文件,只有字母、数字、下划线和短划线("-")可以使用,不允许使用空格和其他特殊字符.
只要是包含有PHP代码的文件都必须以".php"为扩展名.
文件名称必须为小写.
7、目录命名
对于所有目录,只有字母、数字、下划线和短划线("-")可以使用,不允许使用空格和其他特殊字符.
目录名称必须为小写.
8、函数与方法命名
内核, 系统模块中函数的命名遵循 xoops_doSomething([...])格式.
框架中函数的命名以 xoops_[小写标识符]_ 作为前缀, 如:xoops_pear_doSomething([...]).
模块中函数的命名以 [小写模块标识符]_ 作为前缀, 如 newbb_getTopic([...]).
* 函数名只能包含字母,数字字符和下划线,虽然允许使用数字,但并不提倡.
* 函数名必须以小写字母开始.
* 为增强代码的可读性,允许命名一定程度的详细和冗长.
* 对于面向对象编程,对象的存取器总是以"get"或"set"为前缀.
* Class methods that are declared as protected or private are encouraged to follow same style as public methods although it is desired by some external frameworks to begin with a single underscore, i.e. without leading single underscore.
* 本规范不允许有全局范围的函数(即游离于对象之外的函数),这些函数应该包装进一个静态类.
* 在一个类中声明静态方法和变量时要用 "static" 不要用 "private"反之亦然,如果使用 "final" 则这个方法将不能扩展.
9、参数
使用 "NULL" 代替默认值 "FALSE", 如:
public function foo($required, $optional = NULL)
当 $optional 没有或不需要指定一个特定的默认值.
但是, 如果可选参数是一个布尔值, 其默认的逻辑为"TRUE"或者"FALSE", 可以使用"TRUE"或者"FALSE".
10、变量
* 系统全局变量必须以 $xoops 为前缀,如 $xoopsConfig
* 模块全局变量必须以 $[小写模块标记符]为前缀, 并且遵循驼峰式写法, 如 $newbbPostCounter
* 第三方框架类库中的变量定义
* 变量名只能包含字母和数字字符,也允许使用下划线和数字但不提倡的.
* 在类中声明为public的成员变量则不允许使用下划线.
* 对于声明为private或protected的类成员变量,命名规范与成员变量一样,即变量名不必使用一个下划线开头.
* 函数命名,变量命名必须以小写字母开始,而之后的单词,遵循首字母大写的驼峰写法(camelCaps).
* 为了增强可读性,变量命名同样需要一定程度的详细和冗长,并且要有实际意义。类似于$i、$n这样的变量命名,除了用于较少代码的循环语句,在其他情况下是不允许的。如果循环语句超过20行代码,那么用于循环的索引变量也应该使用有意义的名字.
11、常量
variables
系统常量以 XOOPS_ 做为前缀,如 XOOPS_URL
框架常量以 XOOPS_[标记符]_ 做为前缀 如 XOOPS_PEAR_CONSTANT
模块中常量以 [模块标记符]_ 做为前缀如 NEWBB_CONSTANT
12、语言常量规范
必须以下划线开头,如: _XOOPS_LANGUAGE_CONSTANT, _NEWBB_LANGUAGE_CONSTANT
* 常量名允许使用字母和数字字符,与函数命名和变量命名等不同的是,他也允许使用下划线,对数字的使用也没有限制.
* 常量的所有字母都必须大写.
* 为了增强可读性, 单词之前以下划线分开. 如,
"XOOPS_EMBED_SUPPRESS_EMBED_EXCEPTION" 不要写成 "XOOPS_EMBED_SUPPRESSEMBEDEXCEPTION".
* 常量必须使用const指示符定义为类成员,在全局范围使用define定义常量虽然允许,但也不提倡.
13、布尔值与NULL
如同PHP手册中所述, XOOPS同样使用大写字母来编写
14、模块模板名称定义规范
字符串如果没有变量, 必须以用单引号包含。 当有变量时推荐"Hello {$name}, welcome back!";连接字符串时要用"."符号前后要有空格, 数组的索引不允许使用负数, 当使用关联定义数组时, 把语句拆分成多行。
15、类的声明
/**
* 类说明的注释块
* 一个PHP文件只允许有一个类
* 一个类可以放置其他的代码, 但不提倡, 对于这种情况, 必须使用2个空格, 把类代码和其他代码分开
*/
class XoopsClass{
// 类的内部代码
// 必须缩进4个空格
}
禁止使用全局函数
注释
文件中的文档块
任何包含PHP代码的文件都必须在其顶部包含文档块,并至少包含以下php Documentor标记:
/**
* 关于本文件的简要说明
*
* 关于本文件的详细描述(如果有的话)...
*
* 许可信息
*
* You may not change or alter any portion of this comment or credits
* of supporting developers from this source code or any supporting source code
* which is considered copyrighted (c) material of the original comment or credit authors.
*
* @copyright The XOOPS Project http://sourceforge.net/projects/xoops/
* @license http://www.fsf.org/copyleft/gpl.html GNU public license
* @author 作者名称 <author email, or website>
* @version $Id$
* @since File available since Release 3.0.0
*/
[编辑]
类中的文档块
每个类级别的文档块都必须至少包含以下php Documentor标记:
/**
* 类的简单说明
*
* 类的详细说明 (如果有的话)...
*
* @copyright The XOOPS Project http://sourceforge.net/projects/xoops/
* @license http://www.fsf.org/copyleft/gpl.html GNU public license
* @author Author Name <author email, or website>
* @version $Id$
* @since File available since Release 3.0.0
*/
[编辑]
函数中的文档块
每个函数,包括对象方法,都必须包含至少下列文档块:
* 函数功能描述
* 所有的参数
* 所有可能返回的值
/**
* 关于函数的说明
*
* @param Place $where Where something interesting takes place
* @param integer $repeat How many times something interesting should happen
* @return Status
*/
public function xoops_doSomethingInteresting(Place $where, $repeat = 1)
{
// implementation...
}
分享到:
相关推荐
7. **文档**:安装指南、用户手册和开发者文档,帮助用户理解和使用XOOPS。 安装XOOPS时,首先需要一个运行PHP和MySQL的服务器环境。然后,解压"xoops-2.0.15-chinese"压缩包,将文件上传到服务器的适当目录。按照...
此外,XOOPS的开源特性意味着开发者可以根据需要进行二次开发,扩展更多功能,或者找到社区提供的大量插件和主题来丰富网站内容和外观。这种灵活性使得XOOPS成为建立专业门户网站的理想选择,尤其适合那些需要定制化...
xoops模块开发是一个面向Web内容管理系统的程序设计过程,主要用于扩展XOOPS的功能。XOOPS是一个开源的PHP框架,用于构建动态的社区网站。...在实践中,不断学习和优化,才能成为一名优秀的XOOPS模块开发者。
### XOOPS系统详细介绍 #### 一、XOOPS概述 XOOPS是一个开源的内容管理系统(Content Management System, CMS),主要用于构建动态...无论是初学者还是经验丰富的开发者,都可以通过XOOPS快速搭建出美观实用的网站。
4. **社区驱动**:XOOPS 有一个活跃的开发者和用户社区,不断提供新的模块、主题和更新,推动系统的发展。 **XOOPS 2.0.14中的改进** 虽然没有详细列出2.0.14版本的具体更新内容,但通常这种版本升级会包含以下几...
XOOPS是eXtensible Object ...XOOPS作为世界上流行的web CMS系统,凝聚世界各地钟爱开源精神的开发者和支持者,北至爱尔兰南至澳大利亚、阿根廷,东自中国日本西到美国加拿大,无不可见为了开源社区而奉献的人们。
XOOPS不仅是一个软件包,它还是一个全球范围内的社区平台,拥有众多热情的技术支持者和开发者。这款软件的命名发音类似于“Zoops”。 XOOPS源于其他开源项目,最初是“PHPNuke”的后代,后来从“myPHPNuke”分支...
这个文档可能是为了帮助开发者理解xoops的架构、安装、配置、模块开发以及主题定制等核心概念。 在PHP教程的范畴内,xoops开发文档会涉及到以下关键知识点: 1. PHP基础:首先,开发者需要熟悉PHP的基础语法,包括...
通过使用XOOPS ORM,开发者可以更加方便地操作数据库而无需编写复杂的SQL语句。XOOPS ORM的核心是XoopsObject类,它是所有自定义数据存取类的基础。 #### 三、XoopsObject的使用指南 1. **创建模块类** - 首先,...
- **小程序**:在现代互联网环境中,小程序是移动端的一种轻量级应用形式,尽管XOOPS本身不直接支持小程序开发,但开发者可以借助XOOPS搭建的平台,结合小程序技术,为用户提供更丰富的移动体验。 【数据集与计算机...
1. **性能优化**:开发者可能对代码进行了优化,提高了系统的运行效率,缩短了页面加载时间,提升了用户体验。 2. **安全性强化**:每次新版本发布都会重视安全问题,XOOPS 2.3.3可能修复了一些已知的安全漏洞,...
- 开放:基于PHP技术,由全球开发者社区持续开发和改进。 - 易用:用户界面友好,操作简便。 - 支持中文:相较于PostNuke和PhpNuke等其他系统,XOOPS解决了中文乱码问题,使得中文用户使用更为便捷。 3. **功能...
本文档是AlexJia为初学者准备的XOOPS模块开发设计指南,旨在帮助新开发者快速理解和掌握如何在XOOPS平台上构建自定义功能模块。 一、XOOPS模块开发基础 XOOPS模块是系统的核心组件,它们提供了网站的主要功能,如...
随着 XOOPS 2.3 的发布,用户将会可以体验 XOOPS 3.0 中的一些新特性,开发者将会更好的理解XOOPS的开发方向,设计师可以了解未来XOOPS将会支持哪些特性。 XOOPS 2.3.3 RC 简体中文版发布说明 XOOPS 开发团队很...
xoops作为一个成熟的CMS,有着活跃的开发者社区和用户群体,这意味着你可以在网上找到大量的教程、论坛讨论和第三方模块来帮助你更好地利用xoops 2.3.3。如果你打算使用英文版,这将使你更容易获取最新资讯和技术...
9. **活跃的社区支持**:xoops拥有庞大的开发者和用户社区,提供丰富的插件、模块和主题,以及及时的技术支持和解答。 在压缩包文件“xoops22-compact”中,我们可以推测这包含了xoops的某个版本,可能是精简版或...