关于thinkphp我看官方demon都把业务逻辑写在action里,model里只是做验证和自动完成,不过也有一部分是action和model混写,上github看了下关于thinkphp的项目更晕了,几乎是各写各的,有的写action里有的写model里,到底用thinkphp框架该把业务逻辑写在哪?
关于thinkphp我看官方demon都把业务逻辑写在action里,model里只是做验证和自动完成,不过也有一部分是action和model混写,上github看了下关于thinkphp的项目更晕了,几乎是各写各的,有的写action里有的写model里,到底用thinkphp框架该把业务逻辑写在哪?
基本思想还是传统的MVC(Model,View,Controller)
通常Controller是负责业务逻辑。
View负责处理数据显示
Controller 用于处理应用程序数据逻辑。
为啥这样?
有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面
MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。
模式的诞生为了解决问题的。
对于你来说。如果是你一人做。锻炼下。你可以按照自己的习惯写。这都无所谓。
但是我觉得最好养成习惯。这样分离比较清晰易懂。对于你以后与别人项目协作也是很好的。
团队合作做的话,那更需要分层。
借用百度一张图,你可以清晰看下。
楼主似乎还没对MVC理解透。thinkphp里面m和c其实并没有严格的划分。可以直接在c里面操作数据库数据。
简单的,复用性不高,直接就写Action里面就行。
如果复用性比较高的,可以写到Model里面。
在Thinkphp里很多人都认为M
实际已经提炼到M()
这个方法里了。
写在Model里面的关联到数据库字段的映射,才更贴切Model的意思。
Thinkphp的分层本来就不是明显了。比纠结,写着写着,就知道什么代码要提取到Model中去了。
搜索service layer pattern, entity+repository+service