gpt4 book ai didi

php - 有没有一种(简单的)方法可以在纯 PHP 中分离模型,这样做的好方法是什么?

转载 作者:搜寻专家 更新时间:2023-10-31 21:13:41 25 4
gpt4 key购买 nike

我正在寻找一种从构成网站的一组 PHP 文件中删除模型的方法。 (对我来说)很难解释。

我所说的模型是指 MVC 意义上的模型。

举个例子,假设我有这个网站:

  • index.php
  • about.php
  • shop.php
  • checkout.php

上述所有 PHP 文件都使用相同的数据库。我通过使用 view.php 文件添加模板来分离 View ,该文件呈现带有传递给它的值的正确模板。

希望使用已经存在的框架。我正在考虑在某种意义上编写自己的代码,其中只有我需要使用的部分。

如果有人想解释为什么这不是必需的,或者更好的做事方式,那么我也愿意接受。

提前致谢。

最佳答案

编写自己的 MVC 框架需要时间,但您会在此过程中学到很多东西。所以,如果你有时间/资源去做,我绝对鼓励你这样做。在这种情况下,这里有一些可能对您有所帮助的小建议:

  • 首先创建您的领域模型。我假设您正在采用面向对象的方式,因此请考虑您的领域问题并创建最能代表您的问题的抽象。尽量让它与 cross-cutting concerns 分离,喜欢坚持。
  • 经常测试,经常测试。在创建域模型时尝试测试(并运行测试)。当您在 6 个月内添加新功能并希望确保您没有破坏任何东西时,这将特别有值(value)。如果您可以将您的域模型与任何外部(如持久层或第三方 Web 服务)分开,那么测试将会简单得多。今天PHPUnit几乎是 PHP 单元测试的实际标准。
  • 您不必从头开始编写所有内容。有很多库可以帮助你简化 MVC 框架的开发,这样你就可以专注于你真正想开发的东西。例如,您可以使用 Slim处理页面路由,或者您可以将持久性内容委托(delegate)给 Doctrine 2 .
  • 分析其他框架如何解决问题总是好的。您可能想查看类似 Symfony 的产品或 Kohana甚至检查如何 Elgg处理其意见系统。此外,如果您想查看完全不同的内容,可以查看 Seaside。的架构。

回到您最初的问题,对我来说,关键是让不同层的事物尽可能分离。虽然我只使用了版本 1,但 Doctrine 2 似乎是持久性的一个很好的候选者,因为它允许您创建一个完全独立于数据库的领域模型。这是一个巨大的进步。第二件事是如何处理 View 系统。这完全取决于开发人员的口味。例如,我喜欢用对象来建模一切,所以我喜欢 Seaside 的方法。另一方面,Elgg 处理 View 的方式非常好,也许更适合 PHP 处理事物的方式。在这种情况下,您可能会受益于在决定要走的路线之前进行一些研究。

HTH

关于php - 有没有一种(简单的)方法可以在纯 PHP 中分离模型,这样做的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13596761/

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