[TOC]
## 前言:
后端主要指php的开发规范,来源于PHP-FIG规范,并经过修改,明确对PHP-FIG规范中的“应该”“不该”“可以”“或”等做了选择和决策。
根据约束力强弱及故障敏感性,规约依次分为三大类
【强制】【推荐】【参考】
对于规定的延伸信息中,“说明”对内容做了引申和解释;
## IDE选用
【推荐】
本地开发使用PHPStorm
服务器远程编码使用VIM
## 编程规范:
### 自动加载
【强制】
必须使用PSR-4规范
### 加载第三方组件
【推荐】
推荐使用composer加载组件
### 文件
#### 标签
【强制】
1、PHP文件必须使用<?php ?>标签,不得使用其他标签。
2、纯PHP代码文件 必须 省略最后的 ?> 结束标签。
#### 编码
【强制】
PHP文件必须以不带BOM的UTF-8编码。
PHP文件必须使用 Unix LF (linefeed) 作为行的结束符。
### 注释
#### 行注释
【推荐】
单行注释使用 //
【强制】
多行注释必须使用/** */
#### 类注释
【强制】
1. 必须使用/** */注释符。
2. 必须包含类的定义名字和功能描述。
3. 必须包含类首次创建时的作者或团队名字
4. 必须包含类首次创建时的时间标记。
例子:
~~~
<?php
/**
* @className:插件应用入口类
* @description:首页入口,文章页入口,公告页入口,用户中心入口
* @author:calfbb技术团队
* Date: 2017/10/13
*/
namespace Addons\db\controller;
use Framework\library\view;
class Index
{
use view;
public function index(){
$this->display('index/index.html');
}
}
~~~
#### 方法注释
【强制】
1. 必须使用/** */注释符
2. 必须包含类的定义名字和功能描述。
3. 如果有参数列表,注释中必须包含参数的类型和简述。
4. 注释中必须包含方法响应的类型和简述。
例子:
~~~
/**
* 获取用户名字
* @param int $id 用户的uid
* @param bool $status 用户状态
* @return string | bool 响应用户名
*/
public function getUserName($uid,$status=true){
if($uid==66 && $status==true){
return $this->userName;
}else{
return false;
}
}
~~~
#### 属性注释
【强制】
属性必须放在类的开头进行定义。
【推荐】
推荐使用/** */注释符。
注释中推荐包含属性的类型和简述。
### 命名
#### 文件名
【强制】
目录名必须采用驼峰命名法,并首字母小写
PHP文件必须以.php 作为文件后缀
PHP类文件必须采用驼峰命名法,并首字母大写。
PHP配置文件必须采用驼峰命名法,并首字母小写。
#### 类命名
【强制】
类名必须使用驼峰命名法,并首字母大写。
#### 方法命名
【强制】
方法名必须使用驼峰命名法,并首字母小写。
#### 变量名
【强制】
方法名必须使用驼峰命名法,并首字母小写。
#### 常量名
【强制】
常量所有字母必须大写,词间以下划线分隔。
常量true、false、null 必须全部小写。
例子:
~~~
define('ATTACHMENT_ROOT', '/attachment');//附件地址绝对路径
~~~
- 框架介绍
- 初衷
- 简介
- 目录结构
- 开发规范
- 后端规范
- 数据库设计规范
- 数据库
- 函数操作数据库
- Medoo操作数据库
- pdo操作数据库
- ORM
- 配置文件
- 主配置文件
- 数据库配置文件
- 文件上传配置文件
- 路由配置文件
- 模块独立配置文件
- 视图
- 视图说明
- 常用标签
- include
- if-else
- for
- G.url
- 大G
- 路由
- 普通模式
- 伪静态模式
- 兼容模式
- 自定义路由
- 全局常量
- 全局函数
- p
- show_json
- error
- success
- url
- 类库
- 验证类
- 文件类
- file_upload上传
- file_image_thumb缩略
- file_image_crop裁剪
- 缓存类
- 日志类
- 扩展
- 插件应用
- 模版