laravel - larave5中创建provider遇到不能实例化的问题
伊谢尔伦
伊谢尔伦 2017-05-16 16:56:43
0
5
560

在larave5中创建自身的服务提供者,运行时,报:Target [AppIServicesTestServiceInterface] 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了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板