laravel的依赖注入问题
laravel在controller中注册service或者repository目录下的类时,有两个疑问
- 如果repository目录下,有一个接口,其他类都实现这个接口
那么在controller的构造函数中的参数类型如果是repository下的这个接口,那真正运行起来的话,laravel的容器根据类型提示貌似也无法知道具体用哪个类吧?
- 还有就是,laravel容器如何根据类型找到具体类的,因为我这个类并没有通过绑定的方式注入到容器中啊? 还没有注入肯定取不到啊
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
1,一个接口对应多个实现并不符合对于依赖注入的类型提示,如果要面向接口开发,你应当一个类对应一个接口,然后在容器中把接口和类绑定起来,这样需要进行注入时容器就能注入绑定的类
2,当你作为方法签名的方式进行依赖注入时,实际还是走的容器的注入,在容器没有找到绑定关系时就会把其参数类型直接当作为一个类进行处理后实例化。所以当你传入一个有效的类名称时,即使在之前没有绑定,也可以进行进行注入。