• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

thinkPHP框架中service层是干嘛的?

php 搞代码 4年前 (2022-01-25) 15次浏览 已收录 0个评论
文章目录[隐藏]

这层到底是干嘛的,看了下Thinkphp和symfony都有这个感念,但这两个框架的service让人理解起来好像完全两个不一样的东西。
我理解的symfony的service是各种第三类库,而thinkphp我理解的是他相当于每个c和m的中间层,每个控制都会对有应的serivce。真有点迷惑了,求大神给指点一下?

回复内容:

这层到底是干嘛的,看了下Thinkphp和symfony都有这个感念,但这两个框架的service让人理解起来好像完全两个不一样的东西。
我理解的symfony的service是各种第三类库,而thinkphp我理解的是他相当于每个c和m的中间层,每个控制都会对有应的serivce。真有点迷惑了,求大神给指点一下?

*本文来@源gao@daima#com搞(%代@#码@网2

搞代gaodaima码

最近在做的东西用的刚好就是ThinkPHP 3.2.x 版本;至于symfony除了用到一些库之外 并不是很熟悉,所以就不献丑了。

按我的理解,TP中的Service可以理解为API, 并不是像LZ理解的C和M的中间层,M层是用到和数据库交互的;而Service中,则不限定于此,作用是为控制器或其他东西提供规范化的「服务」接口供使用(Service)。

举个例子,「User」「Department」两个Model,分别对应其对数据表的CURD操作。 「UserService」提供 「authroize」、「get_department」、「is_authenticated」等「服务接口」。 无非是把原先全部让Model做的事儿更加细致的分离出来,包括TP中的Logic也是一样,虽然现在没有怎么用到。

SF首答吧,献丑了。

以上

这说明到目前为止,你接触的项目规模还很小,MVC 基本上符合需求,等你的项目规模或复杂度上去了,你自然会有 Serivce 层的这种需求。

同 @老法海 说的

Symfony2 叫 Service Container(服务容器),服务器容和 thinkphp 中的 service 是一种思想,但有又一些区别:

thinkphp 中的一般有这几层:

controller
model
view
service

Symfony2 中是这几层:

controller
entity
repository
view
manager

Symfony2 中的 Manager 不是必需的,基本上和 Thinkphp 中的 service 是一个东西,都是介于 controller 和 model (repository) 之间的东西,而服务容器又是建立在 manager 之上的一个 service。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:thinkPHP框架中service层是干嘛的?

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址