2015-10-25 156 views
2

为了实现JavaScript和Java背景,我发现Laravel(或PHP)中的依赖注入极其混乱。Laravel中的依赖注入

例如(Laravel 5.1),在Middleware/Authenticate构造函数中需要一个Guard对象。我有搜索代码库和类Authenticate从未实例化。

那么警卫从哪里来? SKY。

谢谢,SK。

+0

大部分Laravels使用反射工作:http://php.net/manual/en/intro.reflection.php和php的神奇方法:http://php.net/manual/en/language.oop5。 magic.php。您不一定会找到直接实例化的对象。 –

+0

@craig_h谢谢,有用的信息 –

回答

1

看那laravel文档:

依赖注入是一个奇特的短语,基本上是指这样的:class依赖关系通过构造“注入”类或在某些情况下,“二传手”的方法。 http://laravel.com/docs/5.1/container

您可以在您的代码中实例化Guard或从某个地方获取Guard的实例,并将其传递给Middleware/Authenticate构造函数。

编辑: Guard在某些时候自动注入到Middleware/Authenticate中的某些内容在laravel框架代码中。你最好看一看Laravel中Dependency injection的不同例子,其中所有代码都可见。

+0

是的,我已经阅读过,而且我在JavaScript中使用了'依赖注入'。 我的问题是Guard如何自动注入到Middleware/Authenticate中。 –

+0

看看我编辑的答案。 – fico7489

+0

Laravel中的DI在哪里,我的意思是创建可注入对象的实例类? – OPV