krubio/perfect-container

一个轻量级、基于反射的依赖注入容器,旨在简化使用,使PHP应用程序中的类依赖关系能够自动解决和管理。

v1.2.1 2024-06-03 04:00 UTC

This package is auto-updated.

Last update: 2024-09-03 17:08:35 UTC


README

Build

Scrutinizer Code Quality Code Coverage Build Status Code Intelligence Status

Coverage Maintainability Rating Code Smells Technical Debt

Duplicated Lines (%) Vulnerabilities Bugs Security Rating

PerfectContainer

描述

PerfectContainer是一个轻量级、易于使用的依赖注入容器,专为PHP应用程序设计。它简化了类依赖关系的管理,促进了代码的整洁和解耦。PerfectContainer允许开发者将接口绑定到具体实现,从而更容易地在不修改依赖类的情况下替换依赖关系。

特性

  • 简单API:易于使用的API用于绑定和解决依赖关系。
  • 单例绑定:将类绑定为单例,以在整个应用程序中重用相同的实例。
  • 自动解决:通过类型提示的构造函数注入自动解决依赖关系。
  • PSR-11兼容:遵循PSR-11容器接口标准。

2.0.0版本即将到来的更改

在2.0.0版本中,我们将引入方法重命名以提高一致性

  • 方法重命名:将bind方法重命名为set。此更改旨在提供更清晰的语义并符合依赖注入容器中的标准做法。

弃用通知

从1.1.0版本开始,弃用bind方法,我们鼓励您开始使用set以与即将到来的2.0.0版本的变化保持一致。

  • 弃用:将弃用bind方法,并在未来版本(2.0.0)中删除。请更新您的使用方法以使用set以确保与未来版本兼容。

我们鼓励您相应地更新您的使用方法,以确保与PerfectContainer的最新版本兼容。

安装

使用Composer安装PerfectContainer库。

composer require krubio/perfect-container

使用

以下是PerfectContainer的基本使用示例

require 'vendor/autoload.php';

use PerfectApp\Container\Container;

$container = new Container();

// Binding and resolving dependencies
$container->set('SomeInterface', 'SomeImplementation');
$instance = $container->get('SomeInterface');

贡献

欢迎贡献、问题反馈和功能请求!

许可证

本项目采用MIT许可证。