laminas/laminas-di

PSR-11 容器的自动化依赖注入

3.14.0 2024-05-02 12:56 UTC

README

Build Status

🇷🇺 俄罗斯公民

我们,Laminas 的成员,来自不同的国家。我们中许多人有在俄罗斯和乌克兰的朋友、亲戚和同事。我们中的一些人出生在俄罗斯。我们中的一些人现在住在俄罗斯。我们中的一些祖父母在第二次世界大战中与法西斯作战。这里没有人支持法西斯主义。

我们中的一员有一个乌克兰亲戚,她和儿子一起逃离了家园。火车因前方道路的轰炸而延误。我们有朋友躲在防空洞里。我们在空袭后焦虑地关注他们的消息,空袭无差别地袭击医院、学校、幼儿园和住宅。我们不是从任何媒体上得知这些消息。这是我们的亲身经历。

您对我们足够信任,使用我们的程序,我们请求您再次信任我们。我们需要您的帮助。走出家门,抗议这场毫无意义的战争。停止流血。说“不,战争!”

🇺🇸 俄罗斯公民

我们 Laminas 的成员来自世界各地。我们中许多人有在俄罗斯和乌克兰的朋友、家人和同事。我们中的一些人出生在俄罗斯。我们中的一些人现在住在俄罗斯。我们中的一些祖父母在第二次世界大战中与纳粹作战。这里没有人支持法西斯主义。

我们的团队成员中有一位乌克兰亲戚,她和儿子一起逃离了家园。火车因前方道路的轰炸而延误。我们有朋友躲在防空洞里。我们在空袭后焦虑地关注他们的消息,空袭无差别地袭击医院、学校、幼儿园和住宅。我们不是从任何媒体上得知这些消息。这是我们的亲身经历。

您对我们足够信任,使用我们的软件。我们要求您信任我们说出真相。我们需要您的帮助。走出家门,抗议这场不必要的战争。停止杀戮。说“停止战争!”

laminas-di 提供自动装配以实现控制反转(IoC)容器。IoC 容器广泛用于创建所有依赖项都已解决和注入的对象实例。依赖注入容器是 IoC 的一种形式——但不是唯一的形式。

laminas-di 设计得简单、快速且可重用。它提供以下功能

  • 构造函数注入
  • 自动装配
    • 通过所有依赖项递归地
    • 具有配置的类型偏好
    • 具有配置的注入
    • 通过 create() 调用传递注入
  • 代码生成器以创建可由其他 IoC 容器(如 Laminas\ServiceManager)使用的工厂

它不提供

  • setter、接口、属性或其他除了构造函数注入之外的注入方法
  • 对工厂的支持
  • 声明共享/非共享实例
    • 注入器始终创建新实例
    • 默认容器始终共享实例
  • 支持 __construct 中的可变参数

如果您需要这些功能,请将其与另一个 IoC 容器(如 laminas-servicemanager)结合使用。