【问题标题】:friendly code to transition from page controller to front controller从页面控制器过渡到前端控制器的友好代码
【发布时间】:2009-06-28 16:26:03
【问题描述】:

我正处于自己创建中小型 Web 应用程序的早期阶段。我阅读了“PHP 对象、模式和实践”并决定使用页面控制器,因为快速生产是一个高优先级。页面控制器也很有吸引力,因为我不熟悉 PHP 框架,并且创建一个精心制作的前端控制器目前似乎超过了该项目。我的计划是尽快发布网站的页面控制器版本,看看观众是否喜欢它,然后再进行更复杂的软件设计。

也就是说,我可能会决定在未来添加更多“模块”和开发人员......此时我真的应该切换到前端控制器。上面提到的这本书描述了“从页面控制器开始,走向前端控制器模式并非不可能”,但“并非不可能”的措辞让我担心它可能会相当困难。

我的问题是: 从页面控制器过渡到前端控制器设计有多“难”?在我的基于页面控制器的应用程序上工作时,我应该注意什么来创建允许平滑过渡到前端控制器设计的代码?理想的情况是尽可能少地重写/重构代码,并在前端控制器上添加相关的类/对象。现在我只对维护 MVC 持谨慎态度,所以经验丰富的开发人员的任何建议都会很棒。谢谢。

【问题讨论】:

    标签: php model-view-controller oop front-controller


    【解决方案1】:

    我认为您主要关心的应该是将“业务逻辑”放入适当设计的模型类中。换句话说,不要将这样的逻辑直接放在你的页面控制器中。相反,使用您的页面控制器来解析输入,例如 GET 和 POST,实例化正确的业务逻辑对象,并在这些对象上调用正确的方法来执行实际的数据处理。

    页面控制器还应该负责选择要显示的视图 - 不要在业务对象中输出内容,只需为控制器返回数据。

    通过使用这种方法,您应该将大部分代码放在模型类中,并且如果/当您想要重写为使用前端控制器时,您只需要更改页面控制器以使用前端控制器,希望如此无需修改任何其他内容。

    【讨论】:

      【解决方案2】:

      我在 3 或 4 年前读过你提到的那本书,作为面向对象编程的第一次介绍,我发现它是一本很棒的书,但我不得不说,我只有在开始之后才真正掌握了整个内容使用 CakePHP 并在其代码中根深蒂固,以了解实际情况如何。书中的例子有时会让人有些困惑。

      我建议再看看那里的一些框架,Cake 很好,Yii 意味着更好。很快就可以用它们建立一个系统,只要您准备好深入了解内部情况,它们就可以成为非常宝贵的学习工具。

      【讨论】:

        猜你喜欢
        • 2011-07-04
        • 2019-06-28
        • 1970-01-01
        • 2011-06-23
        • 2013-03-15
        • 2022-08-16
        • 2012-07-28
        • 1970-01-01
        • 2015-11-30
        相关资源
        最近更新 更多