gpt4 book ai didi

成功的 PHP MVC 最佳实践/"Rules"

转载 作者:IT王子 更新时间:2023-10-29 00:07:59 25 4
gpt4 key购买 nike

我确定有人已经发布了这个问题;但是,我想获得有关 PHP 上的 MVC 的各种建议。我知道有很多专家愿意与对编码最佳实践有疑问的人分享他们的知识。

  • 您应该如何组织您的 Controller ?
  • 您应该如何组织您的模型?
  • Controller 应该调用一个模型方法,模型调用子方法还是 Controller 调用所有模型子方法?
  • 等等

希望这对外面的人有帮助(因为它肯定会帮助我)。

最佳答案

MVC 是最容易被误解的设计模式。根据定义,只有一个模型。

当城市规划师提出一个项目时,他会为其设计一个模型。模型可能包含的独立实体:建筑物、街道、公园通常不由单独的模型表示:它们都是单个模型的各个方面。

所以在 MVC 中,模型可以由不同的实体组成,这可能是对它最好的词:实体,就像在由数据库表表示的实体中一样。 MVC 中的模型甚至可能比代码中实际表示的更抽象,而是应用程序可能需要操作的所有数据的概念保护伞。

考虑到这一点,如果这些实体有自己的方法,特别是可能对应于 CRUD 方面(创建、读取、更新、删除)的方法,它们应该直接暴露给 Controller ,它的抽象级别太低。这些构建 block 应该被构建成一个更粗粒度的接口(interface),例如你可以删除一条记录,然后在删除后返回记录列表。 Controller 只需要访问执行上述所有操作的粗粒度方法。

此外,将实体的方法直接暴露给 Controller ,可能会导致必须重写 Controller 以及实体类,例如,如果 ORM(对象关系映射)系统发生变化正在被使用。我建议的中间层也是异常处理、日志记录和任何其他需要管理的此类管理的好地方。

建议的较高抽象级别的方法层有时称为业务委托(delegate)或“外观”,但这是我实际考虑的模型。希望这不是太理论化,对 OP 或其他读者有所帮助。

关于成功的 PHP MVC 最佳实践/"Rules",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1712101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com