THINKPHP5代码风格规范(基于PSR)
-
命名
文件与目录
目录:小写+下划线,例:document_root
类文件:驼峰法(首字母大写),例:DemoConf.php
其它文件:小写+下划线类、函数、方法、属性、变量、常量、配置参数
类名:驼峰法(首字母大写)与类文件保持一致,例:Class DemoConf
函数:小写+下划线,例:private function get_user_ip
方法:驼峰法,例:function initSession
属性:驼峰法,例:private $privateName = "name"
变量:小写+下划线,例:$user_ip
常量:大写+下划线,例:THINK_PATH
配置参数:小写+下划线 ,例:app_namespace数据库
表名:小写+下划线,例:table_name
字段:小写+下划线,例:user_config
索引:小写+下划线,例:index_user_time
-
格式
命名空间(namespace)、引用(use)
namespace、use块后需要空行
use声明都必须在namespace 声明之后
<?php
namespace Vendor\Package;
use FooInterface;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;
class Foo extends Bar implements FooInterface
{
//body
}
缩进、长度
缩进:4个空格
长度:单行不超过80个字符花括号{}
花括号:类和方法的花括号必须换行,控制结构的花括号(if|else|foreach|.......)必须在同一行
关键字、真/假/空
if、else、foreach必须小写;true、false、null必须小写
方法参数
参数列表中,每个参数后面必须要有一个空格,而前面一定不能有空格
有默认值的参数,必须放到参数列表的末尾
class Foo extends Bar implements FooInterface
{
public function sampleFunction($a, &$c, $b = [])
{
if ($a === $b) {
$rtn = true;
}else {
$rtn = false;
}
}
}
控制结构
控制结构关键字之后必须有一个空格
左括号后面不能有空格
右括号前面不能有空格
结构体必须缩进一次
右括号必须在身体的下一行
if 、 elseif 和 else
<?php
if ($expr1) {
// if body
} elseif ($expr2) {
// elseif body
} else {
// else body;
}
switch 和 case
<?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;
}
while 和 do while
<?php
while ($expr) {
// structure body
}
<?php
do {
// structure body;
} while ($expr);
for
<?php
for ($i = 0; $i < 10; $i++) {
// for body
}
foreach
<?php
foreach ($iterable as $key => $value) {
// foreach body
}
try, catch
<?php
try {
// try body
} catch (FirstExceptionType $e) {
// catch body
} catch (OtherExceptionType $e) {
// catch body
}
网友评论