您的位置 首页 php

Laravel最佳实践2021 | 译

在印度IT外包崛起的时候,他们的成功秘诀之一就是高度的工程素养,能够写出标准化的代码。本文我们来说一说Laravel框架最佳实践的一些知识,如果大家都能遵循这些法则,那么PHP程序员能够更容易理解别人的代码。

单一职责原则(SRP)

一个类或者一个方法(method)应该有且只有一个职责(responsibility)。

错误示范:

87d9901983e04aa5b99c5f9a96fbf9f2

最佳实践:

0dad09fb40da4baa9ee96d9c48c3992c

大模型,小控制器

在MVC架构模式当中,提倡模型(Model)要大,而控制器(Controller)要尽量精简。控制器当中,不可以有与数据库相关的代码。

错误示范:

396180d59ec04c31bea588fc848a3929

最佳实践:

045dc463218f4206a860a96df7d9f5d5

表单验证

将表单验证从控制器中移到Request类中去。

错误示范:

02bdca03694c42a5bfcc895edf78ddee

最佳实践:

6c4ace4e1ff24a898b2a675c9effad3a

业务逻辑应该放在Service类

根据单一职责原则(SRP),控制器只能有一种职责,因此业务逻辑应该从控制器移到服务类当中。

错误示范:

f6814e6ca49e44a0a797cda097c91239

最佳实践:

3e60f2ef3ad8429e9557cf9e70e1a01e

不要重复自己原则(DRY)

系统中的每一个部分,都应该具有单一性、明确性和权威性。相同的一段代码,不可在系统中重复两次(写成一个函数)。此外,在Laravel框架下面,Blade等其它范畴的代码也都应该可复用。

错误示范:

68975e36572741a8a9bd753b91a86697

最佳实践:

014f5ee3ce174af08c8939039e172776

优先Eloquent而不是Query Builder和原生SQL

优先Collection而不是数组

Eloquent ORM可读性和可维护性更强,同时有软删除(soft delete)、事件(events)和scope等内置工具,更加强大。

错误示范:

40e282d04f9e49d29693c88502b20ec3

最佳实践:

65d7bc8cfd4649f7a4abd6b38b08e404

批量赋值

错误示范:

ae91753fe07f477c8df874f7db763c9e

最佳实践:

b1600edc403348949f7c855284be1e14

Blade模板文件不可以有查询数据库的代码

Blade模板文件不能有JS和CSS,PHP类文件也不能有HTML代码

代码中的字符串写到配置文件/语言文件/常量里

1e01b364c2484f879e3d08e704a4864c

使用Laravel社区接受的标准工具,而不是第三方

505174871035478fb9a85b6d0a0a5a02

遵循Laravel的命名惯例

3ab49ef791b844b1bf2f7bc76f14c3bb

07c2a402d2ff40d891cd315f8e0711ba

可能的话,使用更短、可读性更强的语法

7274672721964568b722ed7e04749621

更多实例

23320d1c6c704b5a993c5c437d28b25a

使用IoC或者Facade,而不是new关键词

Laravel的控制器等类都是在容器内创建的,容器通过反射机制给构造函数注入需要的依赖。

39939426067544bbb7f5cb9a07c42c23

使用config()而不是env()

daf42fd951924c2ab56e1e04f6c6e4ee

本文翻译自:

图片版权归原作者所有

文章来源:智云一二三科技

文章标题:Laravel最佳实践2021 | 译

文章地址:https://www.zhihuclub.com/77392.shtml

关于作者: 智云科技

热门文章

网站地图