laravel - larave5中建立provider遇到不能實例化的問題
伊谢尔伦
伊谢尔伦 2017-05-16 16:56:43
0
5
561

在larave5中建立自身的服務提供者,執行時,報:Target [App\IServices\TestServiceInterface] is not instantiable.的錯誤。程式碼結構如下,請各位幫忙分析一下原因:

我自己在app目錄下建立了一個目錄取名:IServices,用來存放自己服務相關的介面。實作都放在Services目錄下。
然後服務提供者都放在Providers目錄中。
完成以上步驟後,在app.php中登記服務提供者。
接著在HomeController中透過建構器注入,依賴介面:

#

在進行執行的時候,報了不能實例化的錯​​誤。
我就不明白,為什麼不能實例化呢?這個接口我已經實現了呀。並且也註冊了?是哪一個關鍵環節錯了?還是漏掉了?希望有大神能指點一下,謝謝!

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(5)
曾经蜡笔没有小新

貼出來你的bug trace和service provider出來看看 否則再牛的大神也猜不出來你哪裡錯了。 直覺告訴我你應該是app.php裡面沒有加自己的provider

巴扎黑

寫法是沒錯的,但是你得告訴 ioc 你綁定的這個介面的實作是什麼,l4 中是 bind 方法, l5還沒細看,應該也有這個方法吧。否則 laravel 就不知道該注入什麼,自然光一個介面是無法實例化的了。
應該找個地方寫上類似 App::bind('TestServiceInterface', 'TestService')

phpcn_u1582

我想弱弱的問一句
接口可以被實例化嗎?

PHPzhong

我也不知道為什麼重新通過composer了一個項目,按照之前的寫了一次,就可以了。有可能是我之前的專案在學習過程中改動了什麼地方吧。沒有檢查出來具體錯在什麼位置。遺憾

过去多啦不再A梦

wonder哥~,這個問題解決沒?我已經快崩潰了

經過自己搜尋答案,原來是composer在搞怪。看來得去了解coposer.json了

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板