Php 从页面控制器转换到前端控制器的友好代码

Php 从页面控制器转换到前端控制器的友好代码,php,model-view-controller,oop,front-controller,Php,Model View Controller,Oop,Front Controller,我正处于自己创建中小型web应用程序的早期阶段。我阅读了“PHP对象、模式和实践”,并决定使用页面控制器,因为快速生产是一个高度优先事项。页面控制器也很吸引人,因为我不熟悉PHP框架,创建一个精心设计的前端控制器目前似乎比项目更重要。我的计划是尽快发布该网站的页面控制器版本,在提交更复杂的软件设计之前,看看观众是否喜欢它 这就是说,我可能会决定添加更多的“模块”和开发人员……在这一点上,我真的应该切换到前端控制器。上面提到的书描述了“从页面控制器开始并向前控制器模式移动并非不可能”,但“并非不可

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

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

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

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

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


通过使用这种方法,您的大部分代码都应该在模型类中,如果/当您想重写为使用front controller时,您只需要将页面控制器更改为使用front controller,希望不必修改任何其他内容。

我读了您在三四年前提到的那本书,作为面向对象编程的第一个入门,我发现它是一本很棒的书,但我必须说,我只有在开始使用CakePHP并在其代码中找到根来了解如何在实践中完成事情后,才真正掌握了整个过程。书中的例子有时有点令人困惑

我建议再看一看一些框架,Cake很好,Yii应该更好。用它们建立一个系统并不需要很长时间,只要你准备好仔细观察,它们就可以成为一个无价的学习工具