2015-10-25 227 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