除了 构造函数依赖注入和 Setter方式依赖注入外 还有什么办法可以依赖注入?

我定义了一个 ApiResponse类

除了 构造函数依赖注入和 Setter方式依赖注入外 还有什么办法可以依赖注入?

然后在基类 ApiController 通过构造函数 依赖注入了

除了 构造函数依赖注入和 Setter方式依赖注入外 还有什么办法可以依赖注入?

然后子类就可以调用 ApiResponse里的方法

除了 构造函数依赖注入和 Setter方式依赖注入外 还有什么办法可以依赖注入?

现在问题是 如果子类还需要通过构造函数依赖注入

除了 构造函数依赖注入和 Setter方式依赖注入外 还有什么办法可以依赖注入?

其实也能用 但每次都要带上
ApiResponse $apiResponse

parent::__construct($apiResponse);

所以想问问 还有什么办法能解决这个问题?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 7

谁需要谁自己注入,完全可以放在login里面注入,全部放在父类里面没必要!

3年前 评论

这种显式的注入很有必要,不然的话,随着时间的推进,你无法直观的感受到这个类引入了多少类,导致依赖太别多,而出现性能问题

3年前 评论

用在基类中使用__get魔术方法倒是可以

file 不知道还有没有更好的办法

3年前 评论

直接都改成静态方法来调用 ApiResponse ::message()

3年前 评论

可以写成trait 在父类使用,子类继承

3年前 评论

你看过laravel 的服务容器你就明白原理了, laravel 的依赖注入是通过反射来实现的,反射api 是可以判断类是否可以实例化,有多少个参数,还可以判断参数的类型,laravel是通过递归的形式来解决类的依赖关系的,就是当你实例化的类,有具体的依赖类型(class),就一直实例化下去直到解决所有依赖为止

3年前 评论
public static function instance(Calendar $calendar)
{
    if(!(self::$instance instanceof self)){
        self::$instance = new self();
    }

    self::$instance->calendar = $calendar;
    return self::$instance;
}
Location::instance($calendar)->all($birthday, $hour);

这是你想要的?

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!