在纯PHP中有没有(简单的)分离模型的方法,好的方法是什么?
我要寻找的是一种从组成网站的一组PHP文件中删除模型的方法。(对我来说)很难解释 我所说的模型是指MVC意义上的模型 例如,我有一个网站:在纯PHP中有没有(简单的)分离模型的方法,好的方法是什么?,php,database,oop,frameworks,Php,Database,Oop,Frameworks,我要寻找的是一种从组成网站的一组PHP文件中删除模型的方法。(对我来说)很难解释 我所说的模型是指MVC意义上的模型 例如,我有一个网站: index.php 关于.php shop.php checkout.php 上述所有PHP文件都使用相同的数据库。我通过使用view.php文件添加模板来分隔视图,该文件使用传递给它的值呈现正确的模板 我不想使用已经存在的框架。从某种意义上说,我正在考虑写我自己的作品,其中只有我需要用到的部分 如果有人想解释为什么没有必要这样做,或者说这是一种更好的做
- index.php
- 关于.php
- shop.php
- checkout.php
提前感谢。作为一个编写了自己的PHP框架的人,我可以告诉你,使用框架是一件很好的事情。也就是说,从编写自己的框架开始——你会对框架的真正结构和实用性获得更多的欣赏 你会想了解这个问题。它是您可以在框架中开发的对象种类的主要区别 当您编写了文件/控制器(假定为MVC)包含的一些模型后,您将开始看到从何处抽象出一个“基本模式”,其他人从中扩展(提示:DB singleton)
当您开始引入configs之类的东西时,您将拥有第一个框架对象,所有其他基础都从中进行扩展。编写自己的MVC框架需要时间,但您将在这个过程中学到很多东西。因此,如果你有时间/资源做这件事,我绝对鼓励你这样做。 在这种情况下,这里有一些小建议可以帮助您:
- 首先创建您的域模型。我假设您是以面向对象的方式进行的,所以请考虑您的领域问题,并创建最能代表您的问题的抽象。试着让它与持久性分离
- 测试很多,经常测试。在创建域模型时尝试测试(并运行测试)。当您在6个月内添加新功能并希望确保没有损坏任何东西时,这将特别有价值。如果您可以将域模型与任何外部对象(如持久层或第三方web服务)分离,那么测试就会简单得多。今天,它几乎是PHP中单元测试的事实标准
- 你不必从头开始写。有很多库可以帮助您简化MVC框架的开发,这样您就可以专注于真正想要开发的内容。例如,您可以使用来处理页面路由,也可以将持久性内容委托给
- 分析其他框架如何解决问题总是很好的。您可能希望查看产品,例如或甚至检查如何处理其视图系统。另外,如果你想了解一些完全不同的东西,你可以看一下微软的架构
HTH单例是一种反模式。查尔斯:这不是一个聪明的工程命题。每一种模式在某个地方都是合适的。对于一个非常简单的框架来说,DB单例是一个很好的解决方案。单例很少适用于任何现代PHP框架。如果您需要全局设置,请使用全局设置。在没有愚蠢的开销的情况下,您会得到同样的高度耦合的难以测试的结果。