php – MVC – 它在现实世界中如何运作?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – MVC – 它在现实世界中如何运作?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1788字,纯文字阅读大概需要3分钟。
内容图文
![php – MVC – 它在现实世界中如何运作?](/upload/InfoBanner/zyjiaocheng/782/b9edd5121aa349b586dafef4253dcaea.jpg)
我已经阅读了许多计算器和温度计的微不足道的MVC例子,但我似乎无法将模式映射到现实世界的应用程序.
假设您有一个更复杂的场景.假设您有一个网站购物车,要求用户在添加到购物车之前登录.首先,用户看到产品页面(/ product / detail)并点击添加项目(/ cart / add / 207366).用户尚未登录,因此他们需要访问登录页面(/ user / login),然后熟悉流程,将他们带到购物车视图(/ cart / list).从那里,他们可以链接回原始产品详细信息页面继续购物.
假设我们有3个数据库表:users,usercart和products.在这种情况下,模型是什么?将整个流程封装到ShoppingCart模型的addProductToCartFlow函数中吗?这似乎有点混乱,因为它需要访问用户表进行登录/身份验证并访问产品表以将产品详细信息/价格提取到购物车中.
相反,你会说ShoppingCart模型是自包含的,只处理从购物车中添加项目,删除项目等?然后在其他地方检查登录用户的“逻辑”:可能在控制器本身?这将使控制器非常繁忙,具??有相当多的“业务逻辑”,例如检查用户是否已登录,检查购物车是否为空等等,并且模型只是成为数据库表的漂亮名称.
或许,登录或注销的事实是处理此类功能的UserAuthentication模型的一部分.或者我们可能需要一个UserPageState模型来告诉我们用户应该在登录页面,购物车页面还是产品详细信息页面上?
在您看来,针对这种情况的最佳MVC设计是什么?
解决方法:
您的模型本质上是业务对象.你将拥有ShoppingCarts,用户和物品(在大多数情况下,每个客户可能只有一个购物车,但是谁会说?).您将拥有驱动流量的控制器 – / cart / add / 207366的控制器方法将检查用户是否已获得授权,如果没有,则将它们传递给控制器??/ login.登录控制器应足够智能,以便将正确的信息传递回控制器/ cart / add / 207366,然后将该项目添加到购物车.
控制器将调用Cart.AddItem(),但业务逻辑包含在购物车模型中 – 它可能会查找项目的价格,基于用户的首选客户折扣等.控制器不会知道或关心对这个.控制器确实需要知道用户是否已登录(如果这对应用程序很重要),因为这会影响他们的工作(确定要呈现的视图).他们不需要知道客户是首选,还是信用保留,或者其他任何条件对业务逻辑是否重要.这些都是由模型处理的.
内容总结
以上是互联网集市为您收集整理的php – MVC – 它在现实世界中如何运作?全部内容,希望文章能够帮你解决php – MVC – 它在现实世界中如何运作?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。