【问题标题】:the meaning of dependencies in composer and laravel service container [closed]composer和laravel服务容器中依赖项的含义[关闭]
【发布时间】:2020-06-24 08:23:22
【问题描述】:

我不熟悉composer和laravel。

根据指南。

Composer 是 PHP 的依赖管理器。

Laravel 服务容器是管理类依赖和执行依赖注入的强大工具。

如果 composer 管理一个依赖,为什么需要服务容器?它们指的是不同的依赖关系?

提前致谢。

【问题讨论】:

    标签: laravel dependencies composer-php containers


    【解决方案1】:

    根据 Composer 文档:

    作曲家

    Composer 是 PHP 中用于依赖管理的工具。它允许您 声明库您的项目所依赖的并且它将管理 (安装/更新)它们。

    根据 Laravel 文档

    Laravel 服务容器是一个强大的管理工具 类依赖并执行依赖注入。依赖 注入是一个花哨的短语,本质上是这样的:类 依赖项通过构造函数“注入”到类中,或者在 在某些情况下,“setter”方法。

    参考资料:

    https://getcomposer.org/doc/00-intro.md

    https://laravel.com/docs/6.x/container

    【讨论】:

      【解决方案2】:

      Composer 负责在项目中提供库的副本。它确保您根据需要表示的库存在于项目的供应商文件夹中。它不了解您的项目或这些库的使用方式,或者根本不了解它们。 Composer 处理您的项目所依赖的库并确保它们可用。

      Laravel 服务容器在运行时处理类的实例化。

      如果你有一个带有特定类类型提示的构造函数的参数,那么服务容器就是为你解决这个问题的部分。例如

      public function __construct(User $user)
      {
          $user;
      }
      

      Laravel 服务容器处理运行时依赖关系并解析类以便根据需要实例化对象。

      【讨论】:

      • 如果服务容器不存在,__construct(User $user) 会发生什么?换句话说,如果我想在 laravel 框架之外向构造函数注入参数,我该怎么办?
      • 您需要创建用户并在创建此对象时将其添加为参数。假设构造函数示例用于一个名为 Order 的类: $user = new User(); $order = 新订单($user);服务容器为我们处理“新的”类。
      猜你喜欢
      • 2020-09-08
      • 2020-12-27
      • 2018-05-12
      • 2021-10-10
      • 2014-05-26
      • 1970-01-01
      • 2015-01-24
      • 2016-08-16
      • 2014-04-21
      相关资源
      最近更新 更多