当前位置:  开发笔记 > 编程语言 > 正文

如何将基于页面的PHP应用程序转换为MVC?

如何解决《如何将基于页面的PHP应用程序转换为MVC?》经验,为你挑选了0个好方法。

我已经苦苦挣扎了一段时间,正是如何使用MVC框架重新编码基于页面的PHP应用程序.仅仅是为了背景,我不得不将应用程序转移到MVC,因为我的老板正在制作我.无论如何,我坐下来打印出目录结构.然后我开始尝试计划如何将这些页面转换为控制器/动作对.有些事情似乎很直接.例如,我有几页专门用于添加/编辑/删除用户.这很容易创建一个"用户"控制器,并添加添加/编辑/删除的方法或操作.我遇到问题的地方在于决定何时实际创建一个控制器,而不是只做一个动作,因为它并不总是那么明确.例如,登录控制器与用户/登录,或寄存器控制器与用户/寄存器.对我来说,

另一个例子是,我有大约12个用于创建"计划"的表单页面.在我脑海中,我认为我需要创建一个"计划"控制器,然后每个旧的页面将成为一个动作.所以我有一个控制器有12个动作(方法).对我来说问题是,虽然这些页面中的所有12页都是数据输入表格,但最终构成了这个"计划",这是他们共同拥有的.每个页面在数据库中使用不同的表,并且彼此之间没有任何其他共同点.基本上通过创建一个"计划"控制器,我只是真的使用它作为分组机制; 不一定使用它,因为它们有相互关联的东西.至少在上面的"用户"控制器示例中; 这些行动中的每一个都使用相同的"

我想它只是归结为让我自己使用控制器作为层次结构实体而不是对象/动作.看起来很容易使用控制器以错误的方式陷入陷阱.有谁知道我在说什么?希望它不会太混乱.

编辑:如果我尝试坚持每个视图一个控制器; 然后,我会将每个请求的代码保持在最低限度.这是最好的方法吗?

编辑:从每个人的意见来看,似乎每个视图的一个控制器不符合我的最佳利益.我仍然有一些担忧,因为看起来控制器可能会匆忙变胖,但这是另一个讨论.我还有一些问题,何时决定使用控制器而不是动作.一个很好的例子是堆栈溢出本身.在页面顶部,您有一个"问题"选项,我们可以假设将您带到"问题"控制器.我这样说是因为在右侧您可以选择"提出问题",URL指向"问题/提问".这是有道理的,你使用问题控制器的ask方法.令我困惑的是,您在菜单上有"未答复"选项.它看起来像是一个控制器.为什么它不仅仅是问题控制下的行动,如"问题/未答复"?这就是我变得浑浊的地方.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有