在印度IT外包崛起的时候,他们的成功秘诀之一就是高度的工程素养,能够写出标准化的代码。本文我们来说一说Laravel框架最佳实践的一些知识,如果大家都能遵循这些法则,那么PHP程序员能够更容易理解别人的代码。
单一职责原则(SRP)
一个类或者一个方法(method)应该有且只有一个职责(responsibility)。
错误示范:
最佳实践:
大模型,小控制器
在MVC架构模式当中,提倡模型(Model)要大,而控制器(Controller)要尽量精简。控制器当中,不可以有与数据库相关的代码。
错误示范:
最佳实践:
表单验证
将表单验证从控制器中移到Request类中去。
错误示范:
最佳实践:
业务逻辑应该放在Service类
根据单一职责原则(SRP),控制器只能有一种职责,因此业务逻辑应该从控制器移到服务类当中。
错误示范:
最佳实践:
不要重复自己原则(DRY)
系统中的每一个部分,都应该具有单一性、明确性和权威性。相同的一段代码,不可在系统中重复两次(写成一个函数)。此外,在Laravel框架下面,Blade等其它范畴的代码也都应该可复用。
错误示范:
最佳实践:
优先Eloquent而不是Query Builder和原生SQL
优先Collection而不是数组
Eloquent ORM可读性和可维护性更强,同时有软删除(soft delete)、事件(events)和scope等内置工具,更加强大。
错误示范:
最佳实践:
批量赋值
错误示范:
最佳实践:
Blade模板文件不可以有查询数据库的代码
Blade模板文件不能有JS和CSS,PHP类文件也不能有HTML代码
代码中的字符串写到配置文件/语言文件/常量里
使用Laravel社区接受的标准工具,而不是第三方
遵循Laravel的命名惯例
可能的话,使用更短、可读性更强的语法
更多实例
使用IoC或者Facade,而不是new关键词
Laravel的控制器等类都是在容器内创建的,容器通过反射机制给构造函数注入需要的依赖。
使用config()而不是env()
本文翻译自:
图片版权归原作者所有