学生导师互选系统(php代码规范)
学生导师互选系统(php代码规范)
php编码规范
组名:一不小心就火了
负责项目:学生导师互选系统(安卓端)
编写目的
为了更好的提高团队的的合作效率,保证开发的有效性和合理性,并可最大程度的提高程序代码的可读性和可重复利用性,指定此规范。
- 参考资料
- <<构建之法>>第四章节
- PSR规范
代码风格规范
代码必须遵循 PSR-1 中的编码规范 。
代码必须使用4个空格符而不是 tab键 进行缩进。
每行的字符数应该软性保持在80个之内, 理论上一定不可多于120个, 但一定不能有硬性限制。
每个 namespace 命名空间声明语句和 use 声明语句块后面,必须插入一个空白行。
类的开始花括号({)必须写在函数声明后自成一行,结束花括号(})也必须写在函数主体后自成一行。
方法的开始花括号({)必须写在函数声明后自成一行,结束花括号(})也必须写在函数主体后自成一行。
类的属性和方法必须添加访问修饰符(private、protected 以及 public), abstract 以及 final 必须声明在访问修饰符之前,而 static 必须声明在访问修饰符之后。
控制结构的关键字后必须要有一个空格符,而调用方法或函数时则一定不能有。
控制结构的开始花括号({)必须写在声明的同一行,而结束花括号(})必须写在主体后自成一行。
控制结构的开始左括号后和结束右括号前,都一定不能有空格符。
基本代码规范
php标签
php代码指定用长标签或者短标签,而不使用其他标签。
字符编码
php代码的编码格式指定只使用不带字节顺序标记(BOM)的UTF-8,以便与安卓端和数据库互连减少问题冲突
从属效应(副作用)
一份PHP文件中应该要不就只定义新的声明,如类、函数或常量等不产生从属效应的操作,要不就只有会产生从属效应的逻辑操作,但不该同时具有两者。
“从属效应”(side effects)一词的意思是,仅仅通过包含文件,不直接声明类、 函数和常量等,而执行的逻辑操作。
“从属效应”包含却不仅限于:生成输出、直接的
require或include、连接外部服务、修改 ini 配置、抛出错误或异常、修改全局或静态变量、读或写文件等。如下范例文件:
<?php
// 声明函数
function foo()
{
// 函数主体部分
}
// 条件声明**不**属于从属效应
if (! function_exists('bar')) {
function bar()
{
// 函数主体部分
}
}
命名空间和类
命名空间以及类的命名必须遵循 PSR-0.。
类的命名必须遵循大写开头的驼峰命名规范,如class MyStudent{}。
类的常量、属性和方法(包含所有的类、接口和可复用代码块(traits))
常量类的常量中所有字母都必须大写,词间以下划线分隔。参考代码
<?php class Foo
{
const VERSION = '1.0';
const DATE_APPROVED = '2016-10-26';
}
类的属性统一采用小写开头的驼峰式命名规则,如:private studentNum
方法名称必须符合小写开头的驼峰命名规范,如
<?php class Student
{
public function getNumber(){
//
}
}
扩展与继承
关键词 extends 和 implements 必须写类名称的同一行,类开始的花括号必须独占一行,结束花括号必须在类主体后独占一行
<?php
class ClassName extends ParentClass implements \ArrayAccess, \Countable
{
// constants, properties, methods
}
方法及函数调用
方法及函数调用时,方法名或函数名与参数左括号之间一定不能有空格,参数右括号前也 一定不能有空格。每个参数前一定不能有空格,但其后必须有一个空格。
<?php
bar();
$foo->bar($arg1);
Foo::bar($arg2, $arg3)
if 、 elseif 和 else
标准的
if结构如下代码所示,留意 括号、空格以及花括号的位置,
注意else和elseif都与前面的结束花括号在同一行。<?php
if ($expr1) {
// if body
} elseif ($expr2) {
// elseif body
} else {
// else body;
}
switch 和 case
标准的
switch结构如下代码所示,留意括号、空格以及花括号的位置。
case语句必须相对switch进行一次缩进,而break语句以及case内的其它语句都 必须 相对case进行一次缩进。
如果存在非空的case直穿语句,主体里必须有类似// no break的注释。<?php
switch ($expr) {
case 0:
echo 'First case, with a break';
break;
case 1:
echo 'Second case, which falls through';
// no break
case 2:
case 3:
case 4:
echo 'Third case, return instead of break';
return;
default:
echo 'Default case';
break;
}
注释,每个程序均必须提供必要的注释,书写注释要求规范。程序注释的原则如下:
a. 注释中除了文件头的注释块外,其他地方都不使用//注释,而使用/* */的注释;
b. 注释内容必须写在被注释对象的前面,不写在一行或者后面;- 写在类、方法和属性定义的前面
/**
* Super Class
*
* @package Package Name
* @subpackage Subpackage
* @category Category
* @author Author Name
* @link http://example.com
*/
class SuperClass {
对于执行数据库的sql语句操作,尽量不要在函数内写sql语句,而先用变量定义sql语句,然后在执行操作的函数中调用定义的变量
$sql = "SELECT username,password,address,age,postcode FROM test_t ";
$sql .= " WHERE username='aaa'";
$res = mysql_query($sql);
项目文件的目录结构,延续上一届的做法,不做特别的修改。
php项目开发中的程序逻辑结构
对于PHP项目开发,尽量采用OOP的思想开发,尤其在PHP5以后,对于面向对象的开发功能大大提高。在PHP项目中,我们建议将独立的功能模块尽量写成函数调用,对应一整块业务逻辑,我们建议封装成类,既可以提高代码可读性,也可以提高代码重用性。比如,我们通常将对数据库的接口封装成数据库类,有利于平台的移植。重复的代码要做成公共的库。
写在最后
由于主要做的是数据处理部分的代码,就不结合html方面规范进行编写。本文只是做一下可能需要用的方面的
规范,还存在许多不足,在之后的编码过程中会为遇到规范问题进行补充。
学生导师互选系统(php代码规范)的更多相关文章
- 导师互选系统 Alpha版冲刺总结
导师互选系统 Alpha版冲刺总结 一.设想和目标 我们的软件什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件主要是要实现导师和学生双向互选的功能.功能定义清晰明确,在软 ...
- iOS代码规范(OC和Swift)
下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...
- 转!!Java代码规范、格式化和checkstyle检查配置文档
为便于规范各位开发人员代码.提高代码质量,研发中心需要启动代码评审机制.为了加快代码评审的速度,减少不必要的时间,可以加入一些代码评审的静态检查工具,另外需要为研发中心配置统一的编码模板和代码格式化模 ...
- Android开发代码规范(转)
Android开发代码规范 1.命名基本原则 在面向对象编程中,对于类,对象,方法,变量等方面的命名是非常有技巧的.比如,大小写的区分,使用不同字母开头等等.但究其本,追其源,在为一个资源其名称 ...
- Java代码规范、格式化和checkstyle检查配置文档
http://www.blogjava.net/amigoxie/archive/2014/05/31/414287.html 文件下载: http://files.cnblogs.com/files ...
- 在Git上如何强推代码规范
引言 最近参加了“前端规范制定topic”小组,小组成员一起制定了html.css.js.es6.vue和react等规范,但规范制定好了怎么进行推广去强制执行呢,已知我们的项目都是用git做管理的, ...
- 玩转Eclipse — 自动代码规范检查工具Checkstyle
大项目都需要小组中的多人共同完成,但是每个人都有自己的编码习惯,甚至很多都是不正确的.那么如何使小组所有开发人员都遵循某些编码规范,以保证项目代码风格的一致性呢?如果硬性地要求每个开发人员在提交代码之 ...
- c语言代码规范
什么叫规范?在C语言中不遵守编译器的规定,编译器在编译时就会报错,这个规定叫作规则.但是有一种规定,它是一种人为的.约定成俗的,即使不按照那种规定也不会出错,这种规定就叫作规范.虽然我们不按照规范也不 ...
- PHP代码规范
PHP编码规范 1. 标识符命名规范 标识符的命名力求做到统一.达意和简洁. 1.1 统一 统一是指,对于同一个概念,在程序中用同一种表示方法,比如对于供应商,既可以用supplier,也可以用pro ...
随机推荐
- 20155231 cho3 课下作业
20155231 cho3 课下作业 4 1 通过输入gcc -S -o main.s main.c 将下面c程序"week0603学号.c"编译成汇编代码 int g(int x ...
- 20155318Java课堂实践20170510
20155318Java课堂实践20170510 修改教材P98 Score2.java 让执行结果数组填充是自己的学号:提交在IDEA或命令行中运行结查截图,加上学号水印,没学号的不给成绩 代码 p ...
- 20145209 2016-2017-2 《Java程序设计》课堂实践内容
20145209 2016-2017-2 <Java程序设计>课堂实践内容 一.递归 题目详情: public class TestArgs{ public static void mai ...
- 【SHOI2008】堵塞的交通
题面 题解 这里提供几种不用脑子的算法(当然是离线的): $\text{LCT}$ 记下每条边的删除时间,用$\text{LCT}$维护最大生成树,每次加进一条边时,跟原来那条链上的做比较,删除那条删 ...
- Linux安装gitlab
一.GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务.安装方法是参考GitLab在GitHub上的Wiki页面. 二.我相信使用过git的开 ...
- Lite OS学习之事件EVENT
1. Lite OS的事件EVENT,就是一个任务向另外一个任务通知事件的,不能数据传输.看下有的函数,实际比较复杂 2. 具体还是看编程,先全局结构体整个事件变量 /*事件控制结构体*/ EVENT ...
- power sequece
- Mongodb大数据语法大全
JSON和MONGODBJSON不止是一种交换数据的方式,也是一种存储数据的良好方式,实际上MONGODB并未使用JSON存储数据,而是使用由MONGODB团队开发的一种称为BSON的开放数据格式. ...
- Unity Lighting - Light Probes 光照探针(十)
Light Probes 光照探针 Only static objects are considered by Unity’s Baked or Precomputed Realtime GI s ...
- 程序员必备神器--vps主机
今天推荐一个功能强大.居家必备的神器给刚入行或还不了解它的同学们.且不说它有什么功能,它有多好用,先说先你有没有碰到过这些问题吧. 用百度查技术问题,发现都是互相抄袭和广告,大佬都说google好,但 ...