腾讯PHP开发规范v1.0
PHP开发规范
PHP开发规范一、规范前言篇标准化不是特殊的个人风格,它让程序员可以了解任何代码,弄清程序的状况;新人可以很快的适应环境;防止新接触php的人一次次的犯同样的错误;在一致的开发环境下,可以减少人们犯错的机会。
二、命名定义篇局部变量命名使用英文名词、动词,以大写字母作为单词的分隔,其他的字母均使用小写,单词的首个字母使用小写,不使用下划线,例:$repeatCount = '';$delUserSql = '';全局常量命名使用英文名词、动词,所有字母都使用大写,以下划线分隔每个单词,例:define( 'WEBSITE_NAME', '名称' );define( 'WEBSITE_URL', '地址' )数组变量命名使用英文名词、动词,以大写字母作为单词的分隔,其他的字母均使用小写,单词的首个字母使用小写,不使用下划线,以字符串Array为后缀,例:$scopeArray = array();$bookIdArray = array();静态变量命名使用英文名词、动词,以大写字母作为单词的分隔,其他的字母均使用小写,单词的首个字母使用小写,不使用下划线,以字符串Static为后缀,例:function getDirectoryFile(){static $fileArrayStatic = '';static $fileNumStatic = '';...}对象变量命名使用类名称为变量前缀,所有字母都使用大写,以字符串_OBJECT为后缀,例:$USERACCOUNT_OBJECT = new UserAccount();$PAINTINGORDER_OBJECT = new PaintingOrder();类命名使用英文名词,以大写字母作为词的分隔,其他的字母均使用小写,名词的首个字母使用大写,不使用下划线,例:class UserAccount{...}class PaintingOrder{...}方法命名使用英文名词、动词,以大写字母作为词的分隔,其他的字母均使用小写,单词的首个字母使用小写,不使用下划线,例:class UserAccount{function isAccountOk(){...}function addAccount(){...}}方法中参数命名使用英文名词、动词,以大写字母作为词的分隔,其他的字母均使用小写,单词的首个字母使用小写,不使用下划线,例:class UserAccount{function isAccountOk( $accountName ){$this->accountName = $accountName;...}function addAccount( $inputDataArray ){$this->inputArray = $inputDataArray;...}var $accuntName = '';var $inputArray = '';}类属性命名使用英文名词、动词,以大写字母作为词的分隔,其他的字母均使用小写,单词的首个字母使用大写,不使用下划线,对于类属性为某个对象变量,则以字符串Object为后缀,例:class UserAccount{function IsAccountOk(){...}function AddAccount(){...}var $tableName = '';var $databaseObject = '';}文件夹命名严格按照开发所需框架的规定来命名,对于自主开发模块也同样遵守框架的目录结构以及命名方式。
Xiuno编码规范
Xiuno 全栈工程师编码规范版本:v1.0作者:****************时间:2015/3/20 一、PHP 编码规范与原则前言:本文档是一本面向全栈工程师的编码规范,如果你想成长为全栈式工程师,我相信这个规范是你成功的起点。
总体说来倾向于linux 系统编程的风格,nginx memcached mysql lighttpd 都是采用的小写加下划线的命名风格。
而Windows Java .net 采用的则是匈牙利和骆驼,没有谁好谁坏,习惯就好。
1.1 缩进:每个TAB 键缩进的空白为8 个空格字符宽度。
好处:尽量避免代码缩进,强迫在编写过程中简化逻辑。
1.2 空行与空格:大段代码应该尽量按照功能块用一个空行分割。
函数和函数之间应该有一个空行。
空行内不能包含空格或制表符。
HTML 中不允许出现连续1个以上的空格。
在提示信息或者文档中中文、英文、数字混排的时候,英文和数组应该前后加空格。
1.3 括号:if 紧跟小括号,小括号与大括号之间一个空格,开始大括号与if 同行。
如果业务逻辑简单,尽量使用AND 操作符,优先级比&& 低。
以下代码格式符合标准:if($method == 'GET') {$referer = user_http_referer();$title = $lang['user_create'];include './view/user_create.htm';} else if($method == 'POST') {$email = param('email');$password = param('password');empty($password) AND message(1, “请输入密码!”);}1.3 单引号、双引号在PHP 当中,尽量使用单引号,解析速度比双引号快。
PHP开发规范说明
1目的2代码规范要求3程序设计原则3.1Model层所有与数据库表本身操作方法,都封装在自己的Model类中,不单独在外提供封装。
每个Model基于ThinkPHP都已经封装好了一套DB操作方法。
3.1.1基类3.1.1.1ModelThinkPHP原生Model基类。
不能修改。
在基于单表的数据CURD操作,使用Model原生成的功能。
如:3.1.1.1.1Insert$role_user_model->add(array("role_id" => $role_id, "user_id" => $uid, "oem_code" => parent::oem_code()));3.1.1.1.2Updateif (IS_POST) {$_POST['id'] = get_current_admin_id();$_POST["oem_code"] = parent::oem_code();$create_result =$this->users_model->field("user_login,user_email,last_login_ip,last_login_time,create_time,user_ activation_key,user_status,role_id,score,user_type,oem_code", true)//排除相关字段->create();if ($create_result) {if ($this->users_model->save() !== false) {$this->success("保存成功!");} else {$this->error("保存失败!");}} else {$this->error($this->users_model->getError());}}3.1.1.1.3Delete$id = intval(I("get.id"));if ($this->users_model->where("id=$id")->delete() !== false) {M("RoleUser")->where(array("user_id" => $id, "oem_code" =>parent::oem_code()))->delete();$this->success("删除成功!");} else {$this->error("删除失败!");}3.1.1.1.4Where$id = get_current_admin_id();$user = $this->users_model->where(array("id" => $id, "oem_code" =>parent::oem_code()))->find();3.1.1.1.5PageThinkPHP已经实现好了分页栏位计算方法。
API接口规范V1.0——制定好规范,才好合作开发
API接⼝规范V1.0——制定好规范,才好合作开发返回码规范:统⼀六位 000000 表⽰成功!参数相关返回码预留100000-199999;系统相关返回码预留200000-299999;数据中⼼310000-319999后续项⽬以此类推,后续根据业务扩展情况新增操作码需要提前备案!module = 系统码 optCode = 操作码 optDesc = 操作描述 resultCode = 结果码 resultDesc = 结果描述 bizCode = 业务码 data = 返回数据业务码 = 系统码- + 操作码- + 结果码业务码内容与之前定义的保持⼀致,实例:TaoBao- + Order_ADD- + 330002返回结果⽰例如下所⽰:异常返回:{"optCode": "STORE_ADDMSG","optDesc": "库管中⼼新增消息","resultCode": "330002","resultDesc": "库管中⼼新增消息失败,添加消息到搜索引擎库异常","data": "","module": "HME","bizCode": "TaoBao-Order_ADD-330002","success": false}正常返回:{"optCode": "STORE_ADDMSG","optDesc": "库管中⼼新增消息","resultCode": "000000","resultDesc": "操作成功","data": "","module": "HME","success": true,"bizCode": "Tao-Order_ADD-000000"}API⽂档规范:接⼝名称:products.search接⼝描述:中医药产品接⼝调⽤查询请求参数:响应参数:JSON返回⽰例:{"optCode": "STORE_ADDMSG","optDesc": "数据中⼼新增消息","resultCode": "000000","resultDesc": "操作成功","data": "[{"keywords": null,"tymc": "阿莫西林","tyjx": "颗粒剂","projectId": "44AFC2328D63A53EE05012AC241E3E1B", }]","module": "HME","success": true,"bizCode": "HME-STORE_ADDMSG-000000"}服务码参照:结果码参照:。
PHP程序开发规范及示例
PHP程序开发规范说明书文件夹命名文件夹名称必须符合CamelCase式的大写字母开头驼峰命名规范。
文件PHP代码文件必须以不带BOM的UTF-8编码。
适当空行可以使得阅读代码更加方便以及有助于代码的分块(但注意不能滥用空行)。
缩进代码必须使用4个空格符的缩进,一定不能用tab键。
关键字以及true/false/nullPHP所有关键字必须全部小写。
常量true、false和null必须全部小写。
namespace以及use声明namespace 声明后必须插入一个空白行。
所有use必须在namespace 后声明。
每条use声明语句必须只有一个use关键词。
use 声明语句块后必须要有一个空白行。
例如:<?phpnamespace VendorgiPackage;use FooClass;use BarClass as Bar;use OtherVendorgiOtherPackage\BazClass;// ... additional PHP code ...类(class),属性(properties)和方法(methods)这里的类是广义的类,它包含所有的类(classes),接口(interface)和traits;类(class)类的命名必须遵循大写字母开头的驼峰式命名规范。
<?phpnamespace VendorgiPackage;class ClassName{// constants, properties, methods}extends 和implements关键词extends 和implements必须写在类名称的同一行。
类的开始花括号必须独占一行,结束花括号也必须在类主体后独占一行。
<?phpnamespace VendorgiPackage;use FooClass;use BarClass as Bar;use OtherVendorgiOtherPackage\BazClass;class ClassName extends ParentClass implements giArrayAccess, \Countable{ // constants, properties, methods}implement的继承列表如果超出140个字符也可以分成多行,这样的话,每个继承接口名称都必须分开独立成行,包括第一个。
PHP 编程规范
PHP 编程规范1.注释的规则1-1.源代码开头注释在每一个源代码的开头部分,要包含文件的编号、简要说明、作者和最后修改日期,注释采用phpDocument的方式。
具体例子如下所示:<?php/****@package Admin(属于哪个功能模块,可以根据程序的功能来划分)*@subpackage Module(这个是可选选项,具体根据程序的功能来划分)*@author Jason<Jasonudoo@>*@copyright 2006-2007 Skyunion Ltd.*@version 1.0*@since*/?>1-2.函数开头注释为了便于使用phpDocument 来进行函数文件的管理,建议在函数的开头的注释如下所示:/*** 发送Refund数据给google** @access public* @param string $google_order 订单编号* @param string $amount 金额* @param string $reason 原因* @param string $comment 备注* @param string $message_log 日志记录文件句柄* @return bool*/该函数注释主要是对函数传入的形参和回传值进行说明,并简要说明该函数的作用。
1-3.函数体内部注释函数体内内的注释统一采用重新起行,以//开头,例如:// be sure equation parameter is presentif (empty($params['equation'])) {showMessage(“xxxxxxx”);return;}2.变量名的命名规则2-1.传递参数命名如果是引用传递的参数,要求参数名以r_开头,以方便清晰分辨2-2.函数返回值命名一般采用$ret开头做为函数返回值中间处理的载体2-3.函数局部变量命名(可参考)该部分主要定义局部变量的命名规则。
PHP项目开发规范文档
PHP项目开发规范文档1.简介PHP是一种开源的脚本语言,广泛用于Web开发。
本文档旨在提供PHP项目开发的规范,以保证代码的可读性、可维护性和可扩展性。
2.代码风格-缩进:使用4个空格进行缩进。
- 命名规范:使用驼峰命名法(camel case)命名变量、函数和类。
-常量命名规范:使用全大写字母和下划线命名。
-注释:用注释来解释复杂的代码逻辑和关键性的功能。
-换行:每行代码长度不应超过80个字符。
当一个表达式太长无法放在一行时,可以分成多行,并使用括号或者点操作符连接。
3.文件和目录结构- 将不同类别的文件分别放在不同的目录中,例如将数据库相关的文件放在一个名为"database"的目录中。
- 使用适当的文件命名来描述文件的功能,例如"UserController.php"。
4.安全性考虑-永远不要相信用户的输入,始终进行数据有效性验证和过滤。
- 使用准备好的语句(prepared statements)和参数绑定(parameter binding)来防止SQL注入攻击。
- 对于敏感数据,如密码或社会安全号码,至少应进行哈希(hash)加密。
5.性能优化-减少数据库查询次数:使用适当的索引、缓存查询结果或使用批量操作来减少数据库查询次数。
-尽量使用更高效的函数和算法来提高代码的性能。
-避免在循环中执行过多的数据库查询或文件读写操作。
6.异常处理- 使用try-catch语句来捕获并处理异常。
- 使用异常层次结构来处理不同类型的异常,例如自定义异常类继承自PHP的Exception类。
7.文档注释-使用文档注释来说明函数和类的使用方法、输入参数、返回值和异常情况。
- 使用标准的文档注释格式,例如PHPDoc。
8.版本控制- 使用版本控制系统(如Git)来管理代码,确保代码的版本可追踪和可恢复。
- 尽量使用分支来开发新功能或修复bug,并在合并到主分支之前进行代码审查和测试。
腾讯PHP开发规范v图文稿
腾讯P H P开发规范v 文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]海豹平台开发规范v1.0腾讯科技(深圳)有限公司*版本信息&保密等级目录1引言1.1定义及缩略语1.2参考文档海豹平台WIKI:1.3目的本规范由编程原则组成,融合并提炼了开发人员长时间积累下来的成熟经验,意在帮助形成良好一致的编程风格。
以达到事半功倍的效果,如果有需要本文档会不定期更新。
1.4适用范围如无特殊说明,以下规则要求完全适用于基于海豹平台框架开发的应用,同时也可大部分适用于部门其他PHP项目。
1.5标准化作用当一个软件项目尝试着遵守公共一致的标准时,可以使参与项目的开发人员更容易了解项目中的代码、弄清程序的状况。
使新的参与者可以很快的适应环境,防止部分参与者出于节省时间的需要,自创一套风格并养成终生的习惯,导致其它人在阅读时浪费过多的时间和精力。
而且在一致的环境下,也可以减少编码出错的机会。
缺陷是由于每个人的标准不同,所以需要一段时间来适应和改变自己的编码风格,暂时性的降底了工作效率。
从使项目长远健康的发展以及后期更高的团队工作效率来考虑暂时的工作效率降低是值得的,也是必须要经过的一个过程。
标准不是项目成功的关键,但可以帮助我们在团队协作中有更高的效率并且更加顺利的完成既定的任务。
1)程序员可以了解任何代码,弄清程序的状况2)新人可以很快的适应环境3)防止新接触PHP的开发出于节省时间的需要,自创一套风格并养成终生的习惯4)防止新接触PHP的开发一次次的犯同样的错误5)在一致的环境下,可以减少犯错的机会2目录结构规范2.1框架路径框架引用路径必须采用绝对路径,托管的开发、测试和正式环境必须为:2.2应用目录结构应用需要严格参考以下目录安排代码位置:2.2.1配置config存放应用配置目录,具体参考2.2.2控制器controllers存放控制逻辑的类目录,具体参考2.2.3模型models存放模型定义的类目录,具体参考2.2.4视图views存放视图文件的目录,具体目录参考2.2.5国际化messages存放国际化定义文件的目录2.2.6组件components存放组件的类目录,具体目录参考2.2.7命令commands存放Console命令的类目录,具体目录参考2.2.8临时目录runtime目录权限777,可用于存放临时生成的文件。
PHP开发要求规范
PHP开发要求规范PHP是一种非常流行的服务器端脚本语言,广泛用于Web开发。
由于PHP是一种灵活性很高的语言,开发人员可以很容易地编写出功能强大的应用程序。
然而,随着项目规模的不断扩大,很容易陷入代码混乱、可维护性差等问题。
因此,在PHP开发过程中,遵循规范是非常重要的。
以下是一些PHP开发要求规范:1.代码风格规范:在PHP开发过程中,保持一致的代码风格是非常重要的。
可以参考PSR-2代码风格规范,它定义了关于代码布局、命名约定和注释的规范,帮助开发人员编写可读性更好、更易于维护的代码。
2. 命名规范:在PHP开发中,变量名、函数名、类名等的命名应该具有描述性,能够准确地反映其用途。
通常使用驼峰式命名法,如$myVariable、myFunction(、MyClass等。
3. 错误处理规范:在PHP开发中,应该及时捕获并处理程序中可能发生的错误,避免程序崩溃。
可以使用try-catch块或者设置错误处理器处理错误。
4.安全性规范:在PHP开发中,要注意防止常见的安全漏洞,如SQL 注入、跨站脚本攻击等。
可以使用预处理语句来防止SQL注入,过滤用户输入来防止跨站脚本攻击。
5.性能优化规范:在PHP开发中,要注意优化代码以提高性能。
可以避免不必要的数据库查询、使用缓存等技术来提高程序性能。
6.文档规范:在PHP开发中,编写清晰、详细的文档是非常重要的。
文档应该包括代码注释、API文档、使用手册等。
7. 版本管理规范:在PHP开发过程中,应该使用版本管理工具来管理代码,如Git、SVN等。
这样可以更好地跟踪代码变化、管理代码版本。
8. 测试规范:在PHP开发中,应该编写完善的单元测试、集成测试等,确保代码的质量和稳定性。
可以使用PHPUnit等测试框架进行测试。
PHP开发规范
PHP编程规范良好的代码书写习惯+ 良好的注释习惯+ PhpDocumentor = 程序说明书一个团队,必须有整齐的代码书写习惯,如果再配上统一的IDE开发环境,详细的任务编码流程,完善的代码测试,那么整个团队的开发效率将会有很大的提高。
第1章命名规范全局变量使用全大写形式,如$FILE_ROOT、$URL_ROOT。
一般变量使用小写字母命名,单词之间使用下划线分隔。
变量名字应该使用名词或者形容词+名词的方式。
如$value,$new_value。
数组名字使用名词+Arr的方式,如$infoArr。
1.1临时变量不要将在循环中频繁使用的临时变量如$i,$j等用于其它用途。
1.2 函数函数采用小写字母命名,单词之间使用下划线分隔。
函数的命名建议使用动词+名词的方式,如get_user_img。
完成一组功能的函数放到一个文件中,存放函数的文件采用function_name.func.php命名。
1.3 类类使用英文的大小写来分隔单词,包括首个单词,所有单词的首字母大写,如PageManager;在类中,方法放到属性定义前边、公用方法放到专用方法前边;一般情况下,一个类对应到一个文件;当一些类关系紧密时,可以存放在一个文件中;存放类的文件采用ClassName.class.php方式命名。
1.4 方法方法使用英文的大小写来分隔单词,除首个单词外,其他单词的首字母大写,如getCurrentPage();不要采用不常用的缩写,如where2go();使用常用的缩写时,只大写首字母,如getHtml();类中的私有方法和私有变量以下划线开头。
第2章版式规则2.1 语义分隔各个函数、方法之间应该采用空行间隔;同一个函数中联系紧密的语句之间可以不换行,其他情况需要换行。
2.2 空格规则2.2.1 逻辑运算符前后必须加空格正确$a == $b;错误$a==$b;$a ==$b;加一减一运算符不能加空格。
正确$a++; $a–;错误$a ++; $a –;2.2.2 多个参数分隔时必须加空格正确$g_pro , $g_user , g_show;get_db_info($host, $user, $passwd); 错误$g_pro,$g_user,$g_show;get_db_info($host,$user,$passwd); 2.2.3 语法关键字后必须加空格例如:If, for , while, switch …..正确for ($i = 0; $i < 10; $i++)错误for($i = 0; $i < 10; $i++ )2.3 字符串和变量连接规则字符串与变量连接使用’.'号时,必须在’.'前后加空格,使用”号时,必须在变量前后加”{}”。
PHP编程规范1_10
PHP编程规范前言为规范PHP开发的编码风格,提高开发效率和降低开发人员的时间成本,建立统一的PHP开发标准体系,依据国际、国内相关标准、法规,参照国际、国内通行的职业技能标准制定本规范。
本规范项目专家组:本规范主要起草单位:技术部本规范起草人:FOX修改人:本规范于二○一三年XX月XX日首次发布。
适用范围本规范规定了PHP开发当中的代码编写格式、注释及命名规则、错误及异常的处理方法、性能与安全的操作准则。
确立了PHP开发工作的一般原则。
针对PHP开发过程当中模糊不清的约定给出了统一明确的约定指南。
本标准适用于PHP开发团队。
1说明1.1 必须执行必须执行的规范,用红字标明,违反相关规定每个扣0.5分,每次任务最多扣2分。
1.2 参考执行参考执行的标准不强制执行只用于参考,但希望能开发人员编码风格能逐渐统一到该规范。
2代码编写格式2.1 代码标记使用<?php ... ?>来界定PHP代码。
2.2 缩进PHP程序中缩进宜按标准键盘的1个“TAB”键,即4个空格为单位,一段程序中不应出现两种缩进的规则。
2.3 长度a)单个函数的有效代码长度应控制在50行以内,不包括注释行。
b)单个类的有效代码长度应控制在300行以内,不包括注释行。
2.4 行宽每行PHP代码的行宽宜设置为80 个字符。
2.5 间隔a)操作符两端应各空一个字符。
b)相应独立的功能模块之间应使用注释行间隔,并标明相应内容。
c)程序体上下之间应加入一个空白行,不应使用多空行。
2.6 对齐a)关系密切的代码行应对齐,例如类型、修饰、名称、参数等。
b)连续赋值时应对齐操作符。
c)方法参数过多时应在每个参数的逗号后换行并对齐。
d)控制或循环中的条件大于行宽时,应在操作符前换行,对齐并注释相应条件。
e)变量定义应通过添加空格对齐操作符,同一类型的变量应放在一起。
2.7 括号a)小括号(“( )”)使用过程中,“(”应和函数的关键词紧贴在一起,除此以外宜使用空格将“(”同前面的内容分开;右括号“)”除后面是“)”或者是“.”以外,其它内容应一律用空格隔开;b)大括号(“{ }”)中的语句应单独作为一行,其中:“{”应紧跟语句后;“}”应单独一行与程序体第一个字符对齐,并说明相应匹配的功能模块;c)较长的方法以及类、接口等的"}"后应使用//end ...等标识结束。
php开发规范
php开发规范PSR-[0-4]PSR —— Proposing a Standards RecommendationPSR-0 (Autoloading Standard) ⾃动加载标准PSR-1 (Basic Coding Standard) 基础编码标准PSR-2 (Coding Style Guide) 编码风格向导PSR-3 (Logger Interface) ⽇志接⼝PSR-4 (Improved Autoloading) ⾃动加载的增强版,可以替换掉PSR-0了。
PSR-11. PHP源⽂件必须只使⽤ <?php 和 <?= 这两种标签。
2. 源⽂件中php代码的编码格式必须是不带字节顺序标记(BOM)的UTF-8。
3. ⼀个源⽂件建议只⽤来做声明(类(class),函数(function),常量(constant)等)或者只⽤来做⼀些引起副作⽤的操作(例如:输出信息,修改.ini配置等),但不建议同时做这两件事。
4. 命名空间(namespace)和类(class) 必须遵守PSR-0标准。
5. 类名(class name) 必须使⽤骆驼式(StudlyCaps)写法 (注:驼峰式(cameCase)的⼀种变种,后⽂将直接⽤StudlyCaps表⽰)。
6. 类(class)中的常量必须只由⼤写字母和下划线(_)组成。
7. ⽅法名(method name) 必须使⽤驼峰式(cameCase)写法。
PSR-2⽂件末尾必须空⼀⾏。
必须使⽤Unix LF(换⾏)作为⾏结束符。
纯PHP代码源⽂件的关闭标签?>必须省略。
缩进必须使⽤4个空格来缩进⼀⾏推荐的是最多写80个字符php的关键字,必须⼩写,boolean值:true,false,null 也必须⼩写命名空间命名空间(namespace)的声明后⾯必须有⼀⾏空⾏。
所有的导⼊(use)声明必须放在命名空间(namespace)声明的下⾯。
PHP代码编写规范
PHP代码编写规范一、编辑器设置(1)使用Tab缩进,不要使用空格鉴于很多编辑器在保存文件时会自动清除用于缩进的空格,所以我们一律使用Tab键进行缩进。
(2)UNIN文件格式请将编辑器设置对所有程序使用UNIX格式保存,不要使用Win32或者Mac 的格式。
例如,EditPlus里面Document->File Format(CR/LF)->Unix 。
对于windows格式文件,以Ctrl + M结束(vim下为^M),需要过滤掉:$text = strtr($text, "\x0D", "");二、命名设置1、公共库名称空间TPLIB,Tencent PHP Library2、变量命名(1)所有字母都使用小写(2)首字母根据变量值类型指定整数I、浮点数f、字符串s、布尔值b、数组a、对象o、资源r、混合类型m(3)使用’_’作为每一个词的分界例如:$i_age_max = 10;$f_price = 22.5;$s_name =‘harry’;$b_flag = true;$a_price = array();$o_object = new class();$r_file = fopen();$m_var = array_combine($a_name, $a_flag);3、类命名(1)使用大写字母作为词的分隔,其他的字母均使用小写,即驼峰格式。
(2)名字的首字母使用大写(3)不要使用下划线(’_')(4)interface接口最好使用大写字母I,并以Interface结尾例如:class NameOneTwoclass Nameinterface IExampleInterface ()4、方法命名(1)使用大写字母作为词的分隔,其他的字母均使用小写(2)名字的首字母使用大写,声明为“private” 或“protected” 的,使用’_’为前缀(3)不要使用下划线(’_')(4)与类命名一致的规则(5)对象的访问器总是以“get” 或“set” 为前缀,当使用设计模式如单态模式(singleton)或工厂模式(factory),方法的名字应当包含模式的名字,这样容易从名字识别设计模式。
php项目开发规范
竭诚为您提供优质文档/双击可除php项目开发规范篇一:整理了一份比较全面的php开发编码规范.整理了一份比较全面的php开发编码规范.目录1编写目的2整体要求3安全规范3.1包含文件3.1.1命名规则3.1.2存放规则3.2安全规则3.3一些针对php的规则3.4其它处理规则3.4.1对输入参数值进行转义处理3.4.2操作大html文本4编码规范4.1命名规范4.1.1变量命名4.1.2类4.1.3方法或函数4.1.4缩写词4.1.5数据库表名4.1.6数据库字段4.2书写规则4.2.1代码缩进4.2.2大括号{}书写规则4.2.3小括号()和函数、关键词等4.2.4=符号书写4.2.5ifelseswithforwhile等书写4.2.6类的构造函数4.2.7语句断行,每行控制在80个字符以内4.2.8不要不可思议的数字4.2.9true/false和0/1判断4.2.10避免嵌入式赋值4.2.11错误返回检测规则4.3程序注释4.3.1程序头注释块4.3.2类的注释4.3.3函数和方法的注释4.3.4变量或者语句注释4.4其他规范(建议)4.4.1php代码标记4.4.2程序文件名、目录名4.4.3php项目通常的文件目录结构4.4.4php和html代码的分离问题4.4.5php项目开发中的程序逻辑结构5特定环境下php编码特殊规范5.1变量定义5.2引用的使用5.3变量的输入输出1编写目的为了更好的提高技术部的工作效率,保证开发的有效性和合理性,并可最大程度的提高程序代码的可读性和可重复利用性,指定此规范。
开发团队根据自己的实际情况,可以对本规范进行补充或裁减。
2整体要求技术部php开发规范将参照peaR的规范,基本采用peaR 指定的规范,在其基础上增加、修改或删除部分适合具体开发环境的规范。
本规范只针对php开发过程中编码的规范,对于php开发项目中文件、目录、数据库等方面的规范,将不重点涉及。
前端开发规范1.0
WEB前端开发规范1.HTML部分1.1.遵循xhtml 1.0规则:1)所有标签必须结束2)所有标签必须小写3)标签属性必须使用成对引号(单引号或双引号)4)标签属性必须有值:<select><option selected="selected"></option></select><input type="checkbox" checked="checked" />5)所有特殊符号必须转义(&、<、>、©、»…)6)文档类型声明及编码: 统一为html5声明类型<!DOCTYPE html>; 编码统一为<meta charset="utf-8" />, 书写时利用IDE实现层次分明的缩进;7) 2. 非特殊情况下样式文件必须外链至<head>...</head>之间;非特殊情况下JavaScript文件必须外链至页面底部; 1.2.标签属性命名规范id:连接符命名法“hello-world”class: 连接符命名法“hello-world”name:驼峰式命名法“helloWorld”1)用于结构布局的元素id命名:主容器:main页头:header页脚:footer内容区域:contentLOGO:logo主导航:main-nav二级导航:sub-nav2)name命名:一般用于表单元素,根据当前元素id属性值命名,去掉id属性值的前缀和所有连接符,使用驼峰式命名法命名,例如id=”id-card”,那么name=”idCard”。
1.3.合理使用标签,语义化结构1)标签合理嵌套1.span、strong、em、p、h1~h6等行级元素不能包含块级元素:div、ul、ol、dl、p尽可能减少div嵌套, 如<div class="box"><div class="welcome">欢迎访问XXX, 您的用户名是<div class="name">用户名</div></div></div>完全可以用以下代码替代: <div class="box"><p>欢迎访问XXX, 您的用户名是<span>用户名</span></p></div>;2)严禁多div症、多span症、多table症,正确使用标签表现DOM结构,在文档去除css的情况下,任然具有结构和可读性,以下是html标记的使用规范:p:文本段落;dl:定义列表,可包括标题和内容简介的列表;ul:无序列表;ol:有序列表;h1~h6:文章标题、内容区块标题,根据重要性由大到小区分,h1一个页面只出现一次;strong/em:强调文本;img:图像,必须加上alt属性,当图像无法显示时,可表示图像信息,背景和按钮使用css处理,不使用img元素;table:数据网格,规则的分栏布局,尽可能显性的定宽和定高。
PHP 项目开发规范文档
PHP 项目开发规范文档1.文件及文件目录规范1.1命名规范文件名以全部小写的英文字母组成, 建议使用英文单词, 必要时使用复数; 多个单词之间以下划线隔开, 类文件建议以类的名字的小写命名;则这不仅仅是PHP文件,包括整个项目的文件.例:一般常见文件:common.php, config.php login.php, user_info.htm, import_categories.php类文件class.accounts.php => Class Accounts {……};1.2目录结构规范目录的命名同文件名一样,英文字母,全部小写. 例:/lib 常用PHP文件,库文件/images 页面上使用的背景图或图标文件存在目录/js 页面上使用的js文件/languages 语言包文件/templates 模板文件存在目录/cache 站点数据存储目录, 比如像日志, 附件, 配置文件等,均可以创建子目录存放在这该目录下;2.变量规范2.1变量命名2.1.1 form域命名及URL参数名命名考虑到PHP的数组下标(key)的应用是区分大小写的, 所以强制全部采用小写字母组成, 多词组成时可以用减号隔开.2.1.2 变量命名$ + 变量类型_变量命名作为规则, 变量命名采用英文单词,多词组成时用下划线连接;变量类型不一定强制! 必须用小写. 例: $table_namePHP常用的类型:String str 例: $str_username, $str_password,$passwordInteger int 例: $int_id,$idFloat flt 例: $flt_money,$moneyDouble dbl 例: $dbl_pie,$pieBoolean bln 例: $bln_issetArray arr 例: $arr_data,$dataPHP 用于全局变量类型:$Global 即全局变量的配置变量,全局变量首字母用大写PHP 常量首全部用大写defined('IN_OLCMS')2.2 变量的初始化PHP本身并没有对初始化变量的名字. 所以我们能做的就是给一个未使用的赋一个空值.例:$arrData = array();$intQuality = 0;3.函数与类规范3.1函数的命名下划线连接的组合规则, 例init(), list_category()3.2类的命名规范3.2.1 类的命名类的命名也采用首字母大写的组合规则. 例Class Users {…….}3.2.1 类成员的命名类的成员函数也采用小写的组合规则, 但为了避免函数名过长,可以灵活结合类的名字命名例如Users::delete($uid) 即用户类的成员函数用户删除函数4.语法规范表达式、流程控制语句中,关键字之间用一个空格隔开.且一致采用小写字母编写各类语句!例如:以下空格以红色背景突显if ($blnStatus == true) { …..}$arrData = array();在zend studo 按下ctr+shift+F 格式代码5.注意事项5.1借助get_magic_quotes_gpc()判断PHP环境中是否对外部变量进行自动转义,如若没有,则要手工进去转义,以防SQL注入.5.2避免使用 include_once/require_once5.3编码过程中需要缩进时,缩进采用键盘Tab键,不采用空格键, 缩进字符数设定为4个字符5.4用于运算的变量,比如$i, $k 等时,请注意使用完后unset($i,$k) 避免上下文的重复使用而并没有使用到初始值.5.5必须对外部变量进行判断,比如类型,可允许的最大长度或最小值,尤其是与数据库结合应用时,要根据数据库的字段类型,长度来判断检查对外部变量的引用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
海豹平台开发规范v1.0腾讯科技(深圳)有限公司*版本信息&保密等级版本更改日期更改要点说明编制审核批准V1.0 2014/12/24 新建wilsonwsongV1.1 2014/12/26 修订rusherding文档保密等级:□机密■内部□公开目录海豹平台开发规范V1.0 (1)1 引言 (5)1.1定义及缩略语 (5)1.2参考文档 (5)1.3目的 (5)1.4适用范围 (5)1.5标准化作用 (5)2 目录结构规范 (6)2.1框架路径 (6)2.2应用目录结构 (6)2.2.1 配置config (7)2.2.2 控制器controllers (7)2.2.3 模型models (7)2.2.4 视图views (8)2.2.5 国际化messages (8)2.2.6 组件components (8)2.2.7 命令commands (8)2.2.8 临时目录runtime (8)2.3路径别名 (8)2.3.1 类型导入 (8)3 PHP编码规范 (9)3.1标签 (9)3.2编码 (9)3.3注释 (9)3.3.1 文件注释 (9)3.3.2 类注释 (10)3.3.3 方法注释 (10)3.3.4 属性注释 (11)3.3.5 其它 (11)3.4命名规则 (11)3.4.1 文件 (11)3.4.2 类 (11)3.4.3 函数/方法 (12)3.4.4 变量名 (12)3.4.5 常量名 (12)3.5书写规则 (13)3.5.1 文件 (13)3.5.2 行 (13)3.5.3 缩进 (13)3.5.4 控制结构 (13)3.5.5 运算符 (16)3.5.6 引号 (16)3.5.7 关键词 (17)3.5.8 函数 (17)3.5.9 类 (17)3.5.10 属性 (18)3.5.11 方法 (18)4 数据库命名规范 (20)4.1命名规范 (20)4.2实体命名 (20)4.2.1 前缀命名 (20)4.2.2 后缀命名 (21)4.3字段命名 (21)4.3.1 后缀命名 (22)4.4字段类型 (22)4.4.1 数值类型 (22)4.4.2 字符类型 (23)4.4.3 时间类型 (23)4.4.4 ENUM&SET (23)4.4.5 LOB 类型 (23)4.5表结构设计 (24)4.5.1 适度冗余 (24)4.5.2 尽量使用NOT NULL (24)4.5.3 索引 (24)5 附件 (24)5.1附录一:MYSQL保留字 (24)1引言1.1定义及缩略语缩略词说明海豹平台运维中心提供的研发平台,提供框架、公共基础组件、公共业务组件加速业务的日常研发工作1.2参考文档海豹平台WIKI:/1.3目的本规范由编程原则组成,融合并提炼了开发人员长时间积累下来的成熟经验,意在帮助形成良好一致的编程风格。
以达到事半功倍的效果,如果有需要本文档会不定期更新。
1.4适用范围如无特殊说明,以下规则要求完全适用于基于海豹平台框架开发的应用,同时也可大部分适用于部门其他PHP项目。
1.5标准化作用当一个软件项目尝试着遵守公共一致的标准时,可以使参与项目的开发人员更容易了解项目中的代码、弄清程序的状况。
使新的参与者可以很快的适应环境,防止部分参与者出于节省时间的需要,自创一套风格并养成终生的习惯,导致其它人在阅读时浪费过多的时间和精力。
而且在一致的环境下,也可以减少编码出错的机会。
缺陷是由于每个人的标准不同,所以需要一段时间来适应和改变自己的编码风格,暂时性的降底了工作效率。
从使项目长远健康的发展以及后期更高的团队工作效率来考虑暂时的工作效率降低是值得的,也是必须要经过的一个过程。
标准不是项目成功的关键,但可以帮助我们在团队协作中有更高的效率并且更加顺利的完成既定的任务。
1)程序员可以了解任何代码,弄清程序的状况2)新人可以很快的适应环境3)防止新接触PHP的开发出于节省时间的需要,自创一套风格并养成终生的习惯4)防止新接触PHP的开发一次次的犯同样的错误5)在一致的环境下,可以减少犯错的机会2目录结构规范2.1框架路径框架引用路径必须采用绝对路径,托管的开发、测试和正式环境必须为:/data/php/framework2.2应用目录结构应用需要严格参考以下目录安排代码位置:webroot/index.php Web 应用入口脚本文件index-test.php 功能测试使用的入口脚本文件assets/ 包含公开的资源文件css/ 包含 CSS 文件images/ 包含图片文件themes/ 包含应用主题protected/ 包含受保护的应用文件modc 命令行脚本modc.bat Windows 下的命令行脚本modc.php 命令行 PHP 脚本commands/ 包含自定义的 'modc' 命令components/ 包含可重用的用户组件config/ 包含配置文件controllers/ 包含控制器的类文件SiteController.php 默认控制器的类文件extensions/ 包含第三方扩展messages/ 包含翻译过的消息(i8n相关)models/ 包含模型的类文件runtime/ 包含临时生成的文件tests/ 包含测试脚本views/ 包含控制器的视图和布局文件layouts/ 包含布局视图文件main.php 所有视图的默认布局site/ 包含 'site' 控制器的视图文件 system/ 包含系统视图文件2.2.1配置config存放应用配置目录,具体参考WIKI人口脚本2.2.2控制器controllers存放控制逻辑的类目录,具体参考WIKI控制器2.2.3模型models存放模型定义的类目录,具体参考WIKI模型2.2.4视图views存放视图文件的目录,具体目录参考WIKI视图2.2.5国际化messages存放国际化定义文件的目录2.2.6组件components存放组件的类目录,具体目录参考WIKI组件2.2.7命令commands存放Console命令的类目录,具体目录参考WIKI之Cli使用2.2.8临时目录runtime目录权限777,可用于存放临时生成的文件。
2.3路径别名1)system: 表示平台框架目录,默认为/data/php/framework。
2)webroot: 表示入口脚本文件所在的目录,一般为应用的根目录。
3)application: 表示应用的基础目录,一般为webroot/protected。
4)ext: 表示包含了所有第三方扩展的目录,一般为webroot/protected/extensions。
通过使用Mod::getPathOfAlias(), 别名可以被翻译为其相应的路径。
例如:ontroll er 会被翻译为/data/php/framework/core/web/CControll er。
2.3.1类型导入使用别名可以很方便的导入类的定义,如导入webroot/protected/components/Controller Mod::import('ponents.Controller');同样可以使用目录导入Mod::import('ponents.*');3PHP编码规范3.1标签PHP程序可以使用<?php ?>或<?= ?>来界定PHP 代码,在HTML页面中嵌入纯变量时,可以使用<?= ?>这样的形式,不可使用其他的标签变种。
纯PHP类文件,文件最后一个?>省略。
3.2编码PHP代码必须只使用不带BOM的UTF-8。
3.3注释1)单行注释:在语句结尾用双反斜杠”// “注释2)多行注释:多行注视以”/*”或“/**”符号开头,以”*/ “符号作为注释结束符。
需要生成文档的注释必须是以“/**”开头,以“*/”结尾。
主流的IDE开发工具(如Eclipse,Zend)会用不同的颜色来区分下面的几种注释。
3.3.1文件注释/***(简述,用在索引列表中)** 详细的功能描述(可略)** @copyright Copyright© 2014, 公司名或作者名* @author ${AUTHOR}* @version $Id: ${FILE_NAME}, v ${VERSION} ${TIME} ${AUTHOR} Exp $ **/3.3.2类注释/***(概要)** 详细的功能描述** @property 类型$prop 属性描述** @author ${AUTHOR}* @package ponents(参见路径别名)**/3.3.3方法注释/*** 功能描述** @param 类型$fields 描述** @return 类型描述*/3.3.4属性注释/*** @var 类型$fields 描述*/3.3.5其它1)适当的使用HTML标记语言来美化文档。
不管是生成HTML格式还是CHM格式的文档手册,文档工具都是先生成HTML文档页面,所以适当的使用<br/>或<b>标签可以美化文档,方便阅读。
2)public和private方法:一般情况下,private私有方法不会暴露给其他开发人员,所以private方法的注释一般以“/*”开头,而public方法以“/**”开头。
3.4命名规则Pascal命名法:所有单词第一个字母大写,其他字母小写。
Camel命名法(驼峰命名法) :除了第一个单词,所有单词第一个字母大写,其他字母小写。
采用英文单词或其组合,便于记忆和阅读,切忌使用汉语拼音来命名。
3.4.1文件1)类文件的名称和类名一致,如类HelloWorld,相应的文件名为HelloWorld.php2)配置文件名小写,如config.php3)嵌套php的view文件使用Camel命名法,第一个字母小写,其他单词的第一个字母大写。
如:addApp.php3.4.2类类命名采用Pascal命名方法,类名应该和文件名相匹配。
3.4.3函数/方法通常方法一般为一个动作或行为动词,函数/方法的命名采用Camel命名方法function run()function runFast()function getBackground()尽量用有意义,描述性的词语来命名用checkForErrors()代替errorCheck(),用dumpDataToFile()代替dataFile()。
有时前缀名是有用的:is - 含义为问一个关于某样事物的问题。
无论何时,当人们看到is就会知道这是一个问题。