ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[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');//附件地址绝对路径 ~~~