thinkphp action与model问题,急

WBOY
풀어 주다: 2016-06-06 20:44:50
원래의
1002명이 탐색했습니다.

关于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 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。

模式的诞生为了解决问题的。

对于你来说。如果是你一人做。锻炼下。你可以按照自己的习惯写。这都无所谓。
但是我觉得最好养成习惯。这样分离比较清晰易懂。对于你以后与别人项目协作也是很好的。

团队合作做的话,那更需要分层。

借用百度一张图,你可以清晰看下。

thinkphp action与model问题,急

楼主似乎还没对MVC理解透。thinkphp里面m和c其实并没有严格的划分。可以直接在c里面操作数据库数据。

简单的,复用性不高,直接就写Action里面就行。
如果复用性比较高的,可以写到Model里面。
在Thinkphp里很多人都认为M实际已经提炼到M()这个方法里了。
写在Model里面的关联到数据库字段的映射,才更贴切Model的意思。
Thinkphp的分层本来就不是明显了。比纠结,写着写着,就知道什么代码要提取到Model中去了。

搜索service layer pattern, entity+repository+service

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿