背景
在跳入Laravel/Symfony之前,我正试图从零开始为我自己的教育设计一个相当有用的MVC框架。
我试图实现依赖注入,因为我计划在将来扩展这个框架,并且我希望保持模块化和可维护性。
以下是MVC存储库:https://github.com/JethroHazelhurst/psr-4-mvc
(注意:为了简单起见,控制器/路由系统是硬编码的!)
下面是我的流程图,展示了MVC框架是如何在没有依赖注入的情况下构建的。

据我所知,主要的依赖是..。
问题
所以我有点搞不懂该怎么用依赖注入.例如:如何使用parent::__constructors实现依赖注入(如果有的话)?
而且,依赖于这样的parent::__construct会使框架过于紧密耦合吗?
非常感谢你深思熟虑的答复。
发布于 2016-07-15 22:40:32
--您实际上需要实现依赖项注入。目前没有;没有对象被传递给它们的依赖项。在构造函数中,应该接收正确执行所需的对象。它是依赖注入的基础。
依赖项注入将发生在应用程序的自举相位中。我认为引导是准备环境实际处理它所调用的任何操作的动作,在我们的例子中是处理http请求。
通常是index.php 只调用bootstrap.php文件。该引导文件将将请求路由到特定的控制器,在此过程中创建依赖关系。
使用parent::__construct()是非常好的,这就是如何真正传递对象依赖关系。然而,你可以质疑为什么你需要它。我不明白你的控制器为什么要扩展核心控制器。实际上,它们并不总是具有相同的依赖关系,如果使它们都从基类继承,则很难管理它们。
发布于 2016-07-06 13:13:37
我认为您混淆了依赖注入和扩展类。
依赖项注入处理类的外部依赖项。这意味着,如果在另一个类中使用一个类(在B类中使用类A,而不是扩展类A),则它是一个依赖关系。依赖容器将自动创建实例,并将它们交给需要它们的类。
进一步阅读这里。
https://stackoverflow.com/questions/38224355
复制相似问题