thinkphp 中控制器的划分有什么规范吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
changwei
V2EX    程序员

thinkphp 中控制器的划分有什么规范吗?

  •  
  •   changwei
    cw1997 2016-05-20 14:37:31 +08:00 3006 次点击
    这是一个创建于 3431 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我的理解是每一个功能模块划分出一个控制器,这样的话,方便以后需求出现变动的时候,修改起来能尽可能的不影响其他模块

    但是也看到有人说把所有输出视图的方法都单独抽出来写到 IndexController 控制器里面,而 IndexController 控制器里面再去调用其他控制器的方法。想想好像他们说的也有道理。 但是感觉如果后期需求有变动,那么 IndexController 控制器也要进行修改,好像又违反了高内聚低耦合的原则。(应该是同一个功能下输出视图和数据处理应该是内聚在同一个控制器下)

    搞的我现在不知道到底该怎么划分控制器了,有没有人能分享一下自己的划分方式以及规范。

    9 条回复    2016-05-21 15:07:17 +08:00
    2zH
        1
    2zH  
       2016-05-20 15:27:17 +08:00
    我是按照功能模块划分出几个控制器,不过我做的只是 API 接口,不做 View 。
    个人觉得功能模块的控制器作为功能接口,把输出视图方法抽出来做为一个控制器这样会靠谱一些。
    realpg
        2
    realpg  
    PRO
       2016-05-20 15:50:33 +08:00
    一个模块一个控制器
    那 THINKPHP 还要模块干屁 删了算了……
    likezun
        3
    likezun  
       2016-05-20 15:52:36 +08:00   1
    TP 有规范吗!!!
    jsjscool
        4
    jsjscool  
       2016-05-20 16:32:35 +08:00
    Controller 直接应该避免相互调用,这不符合 MVC 的设计思想。 Components 不就是来做这个的吗
    Balthild
        5
    Balthild  
       2016-05-20 23:24:27 +08:00 via iPhone
    我自己是在一个控制器内部分出用来显示视图的普通方法和用于操作的 Action 方法
    changwei
        6
    changwei  
    OP
       2016-05-21 08:42:38 +08:00
    @jsjscool ThinkPHP 有个 Event 控制器,这个控制器就是负责调用别的控制器,和 Model 层里面的 service 层差不多/div>
    changwei
        7
    changwei  
    OP
       2016-05-21 08:43:37 +08:00
    @realpg Thinkphp 的模块指的是那种大模块,比如说前台模块,后台模块,我指的是前台模块中的小模块,比如说负责操作登录的模块,操作用户的模块等等
    realpg
        8
    realpg  
    PRO
       2016-05-21 08:47:40 +08:00
    @changwei
    按照你的设计,假设你有 50 个模块

    从上层看 你的大模块目录里有 50 个目录 每个目录里只有一个 controller 文件
    这跟你的大模块目录里有 50 个 controller 文件有何不同,尤其是你这 controller 的名基本会跟目录同名……
    就为了自己访问文件时候多点两下划水?
    changwei
        9
    changwei  
    OP
       2016-05-21 15:07:17 +08:00
    @realpg 说了这么多,那请问如果是你,你会怎么设计?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1000 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 18:33 PVG 02:33 LAX 11:33 JFK 14:33
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86