从头开始的PHP MVC - 如何连接这些类?

Jom*_*oos 4 php model-view-controller

首先,我知道

  • 不要重新发明轮子
  • MVC有很多框架.

这不是为了制作工作,而是为了我的爱好项目.我从头开始编写MVC是为了更深入地了解MVC,并让我满意.最后,我可以对自己说:" 你做了好友.你自己写了一个MVC框架! "


我现在的问题.通常,我们会在MVC中编写一些类,并且从一开始就存在.我们通常所说的他们,像,Bootstrapper,Router,Registry,和Config.可能会有更多,但我现在想关注这些.通常,每个请求我们不需要这些类的多个实例(单例?).我认为从名称本身可以清楚地知道这些类的作用.所以我现在的问题是:

谁首先开始(我认为是Bootstrapper)?这些类如何链接在一起?他们都需要单身吗?我们如何使这些实例(Bootstrapper可能是一个例外)可用于应用程序中的其他类(也许我们使用单例)?

ter*_*ško 7

由于我现在正在做同样的事情,这是我的观点:

  • 不使用魔法Bootstrapper,CoreInitializer类.将该功能放在像bootstrap.phpinit.php文件这样的东西上要好得多.在我的项目中,这样的文件包含其他类之间的所有"连线"(Router创建实例,注入不同的工厂等).

  • 不要在你的应用程序中使用全局状态(Register并且Config最有可能成为引入全局状态的候选者).我建议您观看此讲座播放列表以获得一些见解.

  • 如果答案是"单身人士",你问的是错误的问题

  • 应用程序启动的位置取决于您创建代码的方式,但不应该从类内部开始.想想其他人(包括你,6个月后)可能需要了解你的框架是如何工作的.挖掘思想另一个类,只是为了达到神奇的init()功能会很烦人.

  • 了解什么是固体原理德米特定律.

我的两分钱