我已经阅读了很多关于此的 SO 主题,但仍然没有找到(或能够创建)正确的答案。
我正在开发一个小型 MVC 框架,我想要一些可以从控制器调用的全局类/对象(但也可能是模型)。
我可以采取几条路线:
- 全局变量
- 静态类/注册表
- 依赖注入
互联网似乎同意 DI 是最佳途径。我想我已经掌握了这个想法,但还不舒服。所以我想提供一些背景信息;我可能是唯一一个在这个项目上工作的人,这是一个小项目,我所有的控制器都扩展了主控制器(所以我可以在那里加载一个类库)。
作为一个具体的例子,我想要一个类别数组。所以我开始将该数组放在 CategoryController 中。但现在我注意到我有点想在我的前视图和 ProductController 中使用该数组。显然我不想将所有 CategoryController 加载到 ProductController 中。您也可以说我可以将该数组放在某种配置或设置文件中,因为这个示例很简单,但这就是为什么它是一个示例。我可能会用更多的功能扩展它。
所以总结一下:在 PHP 中(特别是在 MVC 模型中)你如何让你的类(主要是控制器)访问某种通用类或其他可共享的功能。