Laravel的命名规范

Martin Fowler也表示过,他最喜欢的一句谚语是:

“在计算机科学中有两件难事:缓存失效和命名。(There are only two hard things in Computer
Science: cache invalidation and naming things.)”

有篇文章总结了一些命名Laravel开发的命名规范,原文地址 https://webdevetc.com/blog/laravel-naming-conventions/
我总结了一下主要是以下几点

控制器命名

  • 控制器应使用PascalCase(即每个单词首字母大写),并且是单数形式,以"Controller"结尾。例如:BlogController,AuthController,UserController。
  • 方法命名
VERBURITYPICAL METHOD NAMEROUTE NAME
GET/photosindex()photos.index
GET/photos/createcreate()photos.create
POST/photosstore()photos.store
GET/photos/{photo}show()photos.show
GET/photos/{photo}/editedit()photos.edit
PUT/PATCH/photos/{photo}update()photos.update
DELETE/photos/{photo}destroy()photos.destroy

数据库命名

  • 数据库表名应使用snake_case(即单词间用下划线分隔),并且是复数形式。例如:posts,project_tasks,uploaded_images。
  • 关联表(Pivot Tables):关联表名应全部小写,按字母顺序排列的模型名,用下划线分隔。例如:post_user,task_user。
  • 表列名:表列名应使用snake_case,全部小写。例如:post_body,id,created_at。
  • 主键:主键通常命名为id。
  • 外键:外键应是模型名(单数)后跟_id。例如:comment_id,user_id。

变量命名

  • 普通变量应使用camelCase(即第一个单词首字母小写),如果是集合或数组,则变量名应为复数形式。例如: u s e r s (多个用户对象的集合), users(多个用户对象的集合), users(多个用户对象的集合),user(单个用户对象)。

模型命名

  • 模型应使用PascalCase,单数形式。例如:User,ForumThread,Comment。

  • 模型属性:模型属性应使用snake_case。例如: t h i s − > u p d a t e d a t , this->updated_at, this>updatedatthis->title。

  • 模型方法:模型方法应使用camelCase。例如:public function get(),public
    function getAll()。

  • 关系

    • hasOne或belongsTo关系:单数形式,例如:public function postAuthor(),public function phone()。
    • hasMany,belongsToMany,hasManyThrough关系:复数形式,例如:public function comments(),public function roles()。
    • 多态关系:方法名应能够反映关联,例如:public function category()。

总结

这篇文章中的命名规范绝大多数是没有问题的,这些规范不限于PHP或者Laravel都是通用的。只有一点就是模型中的属性命名,这个规范里面里面用的是蛇形,因为这个来源于框架层面,跟数据库字段的对应。但实际上很多语言框架Java的,甚至PHP的hyperf都提供了模型属性驼峰的解决方案,也有一些插件来支持Laravel模型属性驼峰方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值