首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用父类实现依赖注入?

用父类实现依赖注入?
EN

Stack Overflow用户
提问于 2016-07-06 12:44:37
回答 2查看 302关注 0票数 1

背景

在跳入Laravel/Symfony之前,我正试图从零开始为我自己的教育设计一个相当有用的MVC框架。

我试图实现依赖注入,因为我计划在将来扩展这个框架,并且我希望保持模块化和可维护性。

以下是MVC存储库:https://github.com/JethroHazelhurst/psr-4-mvc

(注意:为了简单起见,控制器/路由系统是硬编码的!)

下面是我的流程图,展示了MVC框架是如何在没有依赖注入的情况下构建的

据我所知,主要的依赖是..。

  1. 核心路由器依赖Foo\Controller
  2. FooController依赖于核心\控制器(通过parent::__construct方法)
  3. 核心控制器依赖于核心视图
  4. Foo_Model依赖于核心\模型依赖于核心\数据库

问题

所以我有点搞不懂该怎么用依赖注入.例如:如何使用parent::__constructors实现依赖注入(如果有的话)?

而且,依赖于这样的parent::__construct会使框架过于紧密耦合吗?

非常感谢你深思熟虑的答复。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-15 22:40:32

--您实际上需要实现依赖项注入。目前没有;没有对象被传递给它们的依赖项。在构造函数中,应该接收正确执行所需的对象。它是依赖注入的基础。

依赖项注入将发生在应用程序的自举相位中。我认为引导是准备环境实际处理它所调用的任何操作的动作,在我们的例子中是处理http请求。

通常是index.php 只调用bootstrap.php文件。该引导文件将将请求路由到特定的控制器,在此过程中创建依赖关系。

使用parent::__construct()是非常好的,这就是如何真正传递对象依赖关系。然而,你可以质疑为什么你需要它。我不明白你的控制器为什么要扩展核心控制器。实际上,它们并不总是具有相同的依赖关系,如果使它们都从基类继承,则很难管理它们。

票数 2
EN

Stack Overflow用户

发布于 2016-07-06 13:13:37

我认为您混淆了依赖注入和扩展类。

依赖项注入处理类的外部依赖项。这意味着,如果在另一个类中使用一个类(在B类中使用类A,而不是扩展类A),则它是一个依赖关系。依赖容器将自动创建实例,并将它们交给需要它们的类。

进一步阅读这里

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38224355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档