thinkphp - PHP框架中service层是干嘛的?
怪我咯
怪我咯 2017-04-10 15:39:20
[PHP讨论组]

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

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
ringa_lee

最近在做的东西用的刚好就是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首答吧,献丑了。

以上

PHP中文网

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

同 @老法海 说的

PHP中文网

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。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号