Skip to content

fastdlabs/container

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

126 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FastD Container

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

About

FastD Container.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages