PHP 编写规范

基础规范

这是由 PHP-FIG(PHP Framework Interoperability Group)制定的 PHP 编码规范(PSR:Proposing a Standards Recommendation)

文档列表:PHP Standards Recommendations

重点阅读:PSR-1: Basic Coding StandardPSR-12: Extended Coding Style


团队规范

代码注释

行注释:

// 空格后写注释内容

块注释:

/**
 * 标题后空一行
 *
 * @param $user
 * @return array
 */

类方法及属性顺序

  • 方法顺序:publicprotectedprivate
  • 属性顺序:const > public > proteced > private
class Demo
{
    const TIMEOUT = 60;
    public $table = 'user';
    protected $status = 1;
    private $field = 'age';

    public function func1()
    {
    }

    protected function func2()
    {
    }

    private function func3()
    {
    }
}

代码中 MySQL 关键词大写

$db->sql('SELECT * FROM table WHERE age=18');

字符串中无变量时使用单引号

$str = ' ';
$str = 'Hello World';
$str = "Hello $name";

// SQL 语句例外(语法包含单引号)
$sql = "SELECT * FROM table WHERE name='abc'";

数组最后一个元素加逗号

增减数组元素后提交 Git,版本记录中不会产生干扰信息:

$array = [
    'a',
    'b',
    'c',
];

Laravel 项目规范

日志规范

Laravel 遵循 RFC 5424 定义了八个日志级别,为了避免错误使用,我们使用并重新定义其中五个等级:

级别说明
Emergency紧急日志(系统不可用)
Error错误日志(系统运行出现了某些错误,会导致部分功能的中断)
Warning警告日志(系统运行出现了某些异常,但不会影响功能的正常运行)
Info信息日志(系统运行时的一些重要信息,默认日志级别)
Debug调试日志(开发调试过程中一些详细的运行信息,默认不打印)

单数 or 复数?

为了不必要的混淆,控制器、路由、模型、数据表均使用单数命名

资源型控制器

假设需要处理 “用户” 相关的 HTTP 请求,使用 Artisan 命令创建控制器:

php artisan make:controller UserController --resource

接下来给控制器注册一个资源路由:

Route::resource('user', 'UserController');

此时资源的相关操作对应关系如下:

HTTP 方法URI动作(方法)路由名称
GET/userindexuser.index
GET/user/createcreateuser.create
POST/userstoreuser.store
GET/user/{user}showuser.show
GET/user/{user}/editedituser.edit
PUT/PATCH/user/{user}updateuser.update
DELETE/user/{user}destroyuser.destroy

自定义命令必须使用命名空间

所有的自定义命令,都必须使用项目命名空间,如:

php artisan namespace:send-email
php artisan namespace:clear-token

错误的例子:

php artisan send-email
php artisan clear-token
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值