CRM项目选用的是 ThinkPHP5.1.x 的版本做开发,PHP的版本是PHP7+。

现在做PHP的项目,我喜欢把项目的代码架构成可用性高的项目。举个例子,我接触过很多用ThinkPHP做项目的人,总是按TP官方默认生成的目录架构来做项目。这样做倒也不太严重,最严重的地方是他的架构里没有严格的加入公共的 Model 层、Logic 层、或 Dao 层。导致很多简单或复杂的代码都直接在Controller层里实现,最后写着写着发生相同功能的地方不得不直接复制粘贴代码,造成大量冗余代码出现在项目里,给后期扩展维护带来麻烦。

这张图是别人写的 TP3.2的代码,

Thinkphp5乐兔CRM之项目源代码架构-LMLPHP

这张图是我很早期用TP3.2写的代码,Controller 层只负责把提交上来的数据整理好传给 Model 层或 Logic 层。

Thinkphp5乐兔CRM之项目源代码架构-LMLPHP

再看看现在用 TP5.1 做的CRM的项目架构,分成 Controller 层,Model 层,Logic 层,Dao层,结构清晰复用代码,减少冗余代码。

Thinkphp5乐兔CRM之项目源代码架构-LMLPHP

Model 层就对应数据库里的表实体

Thinkphp5乐兔CRM之项目源代码架构-LMLPHP

这样架构之后,不管做 Web 端,H5的Web端,还是 app 的 api ,我都能复用 Logic 层里写好的业务逻辑。

欢迎评论交流,如有转载,敬请注明原创作者与出处。

01-09 12:17