fastd/container

FastD Container

Maintainers

Package info

github.com/fastdlabs/container

pkg:composer/fastd/container

Statistics

Installs: 20 277

Dependents: 9

Suggesters: 0

Stars: 3

Open Issues: 0

v8.0.0 2026-05-28 09:44 UTC

README

Building Latest Stable Version Total Downloads Latest Unstable Version License

FastD Container 是一个轻量级但功能强大的PHP依赖注入容器,完全实现PSR-11标准接口。它提供了简洁易用的API来管理应用程序中的服务依赖关系,支持多种服务类型、自动数组合并、单例模式和服务提供者机制。

文档

📚 详细的文档请查看 /docs 目录:

环境要求

  • PHP版本: >= 8.2 (推荐使用最新稳定版)
  • 依赖标准: PSR-11 Container Interface ^2.0
  • 构建工具: Composer 2.x
  • 测试框架: PHPUnit ^9.0 (仅开发环境)

安装

使用Composer安装:

composer require fastd/container

基础使用

1. 创建容器实例

use FastD\Container\Container;

$container = new Container();

2. 注册服务

// 注册类服务
$container->add('logger', Monolog\Logger::class);

// 注册闭包服务
$container->add('database', function() {
    return new PDO('sqlite::memory:');
});

// 注册配置数组
$container->add('config', [
    'app_name' => 'My Application',
    'debug' => true
]);

3. 获取服务实例

// 获取服务实例 (PSR-11 标准方法)
$logger = $container->get('logger');
$config = $container->get('config');

// 检查服务是否存在
if ($container->has('logger')) {
    $logger = $container->get('logger');
}

4. 数组访问支持

// 使用数组语法操作容器
$container['cache'] = RedisCache::class;

if (isset($container['cache'])) {
    $cache = $container['cache'];
}

unset($container['cache']);

更多使用示例请参考 完整文档

测试

运行测试套件:

vendor/bin/phpunit

贡献

欢迎任何形式的贡献!您可以通过以下方式参与项目:

  • 🐛 报告问题
  • 💡 提交功能建议
  • 🔧 贡献代码和文档
  • ⭐ Star项目支持

请确保在提交Pull Request前:

  1. 编写相应的测试用例
  2. 确保所有测试通过
  3. 遵循项目的代码风格
  4. 更新相关文档

License MIT