Laravel框架开发规范-修订前期版
1.追加App/Models目录,App/User.php迁移至App/Models目录中
①配置内容属于架构信息、服务器信息、有必要隐藏无法提交git的信息,请使用.env文件配合env()方法进行设定(.env.example中必须添加对应的字段和示例)
②属于业务逻辑的常量内容,或可以提交到git无需隐藏的部分配置类信息,直接在定义代码处使用环境判断函数判断环境后将所有值都写入代码中。
除了由后台管理员或者程序生成的富文本使用{!! !!},其余输出必须使用{{ }}或{{{ }}}
laravel5.0起,默认{{ }}是会进行html_filter处理的,可以避免XSS攻击
PHP代码文件 必须 以 <?php
或 <?=
标签开始;
PHP代码文件 必须 以 不带 BOM 的 UTF-8
编码
类的命名 必须 遵循 StudlyCaps
大写开头的驼峰命名规范;
类中的常量所有字母都 必须 大写,单词间用下划线分隔;
方法名称 必须 符合 camelCase
式的小写开头驼峰命名规范。
根据规范,每个类都独立为一个文件,且命名空间至少有一个层次:顶级的组织名称(vendor name)。
代码 必须 使用4个空格符而不是「Tab 键」进行缩进。使用空格缩进,让对齐变得更方便。
每行的字符数 应该 软性保持在 80 个之内,理论上 一定不可 多于 120 个,但 一定不可 有硬性限制
每个 namespace
命名空间声明语句和 use
声明语句块后面,必须 插入一个空白行。
类的开始花括号({
) 必须 写在函数声明后自成一行,结束花括号(}
)也 必须 写在函数主体后自成一行
方法的开始花括号({
) 必须 写在函数声明后自成一行,结束花括号(}
)也 必须 写在函数主体后自成一行
类的属性和方法 必须 添加访问修饰符(private
、protected
以及 public
),abstract
以及final
必须 声明在访问修饰符之前,而 static
必须 声明在访问修饰符之后
控制结构的关键字后 必须 要有一个空格符,而调用方法或函数时则 一定不可 有。
控制结构的开始花括号({
) 必须 写在声明的同一行,而结束花括号(}
) 必须 写在主体后自成一行
控制结构的开始左括号后和结束右括号前,都 一定不可 有空格符
所有PHP文件 必须 以一个空白行作为结束。
纯PHP代码文件 必须 省略最后的 ?>
结束标签。
非空行后 一定不可 有多余的空格符。
空行 可以 使得阅读代码更加方便以及有助于代码的分块。
每行 一定不可 存在多于一条语句
PHP所有 关键字 必须 全部小写。常量 true
、false
和 null
也 必须 全部小写。
所有 use
必须 在 namespace
后声明。
关键词 extends
和 implements
必须 写在类名称的同一行。implements
的继承列表也 可以 分成多行,这样的话,每个继承接口名称都 必须 分开独立成行,包括第一个。
一定不可 使用关键字 var
声明一个属性。
每条语句 一定不可 定义超过一个属性。
不该 使用下划线作为前缀,来区分属性是 protected 或 private。
不该 使用下划线作为前缀,来区分方法是 protected 或 private。
方法名称后 一定不可 有空格符,其开始花括号 必须 独占一行,结束花括号也 必须 在方法主体后单独成一行。参数左括号后和右括号前 一定不可 有空格。
参数列表中,每个逗号后面 必须 要有一个空格,而逗号前面 一定不可 有空格
有默认值的参数,必须 放到参数列表的末尾
参数列表 可以 分列成多行,这样,包括第一个参数在内的每个参数都 必须 单独成行。
方法及函数调用时,方法名或函数名与参数左括号之间 一定不可 有空格,参数右括号前也 一定不可 有空格。每个参数前一定不可 有空格,但其后 必须 有一个空格。
应该 使用关键词 elseif
代替所有 else if
,以使得所有的控制关键字都像是单独的一个词。
MySQL字段:小写、下划线(snake-case)
1) 单行注释:在语句结尾用双反斜杠”// “注释
2) 多行注释:多行注视以“/**”符号开头,以”*/ “符号作为注释结束符。
文件注释
/** * 详细的功能描述(可略) * * @copyright Copyright© 2016, 公司名称 * @author zongshuai * @Date: 16/7/15 * @Time: 下午5:45 */
方法或函数注释
/** * 设备出库记录列表接口 * * @param 类型 $fields 描述 * @param 类型 $fields 描述 * @return 类型 描述 */
属性注释
/**
* 描述
* * @var 类型 */