karolak/psr-container 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

karolak/psr-container

Composer 安装命令:

composer require karolak/psr-container

包简介

PSR-11 container implementation.

README 文档

README

A minimal, zero-dependency PSR-11 container implementation for PHP.

All services are resolved lazily on first access and reused on subsequent calls.

Requirements

Installation

composer require karolak/psr-container

Usage

use Karolak\PsrContainer\Container;

$container = new Container([
    LoggerInterface::class => static fn (): FileLogger => new FileLogger('/var/log/app.log'),
    Connection::class      => static fn (): Connection => new Connection('sqlite::memory:'),
    UserRepository::class  => static function (Container $c): UserRepository {
        return new UserRepository(
            $c->get(Connection::class),
            $c->get(LoggerInterface::class),
        );
    },
]);

$repository = $container->get(UserRepository::class);

Each factory receives the container instance as its only argument, so you can resolve other services as dependencies. Every factory is called at most once — subsequent calls to get() return the cached instance.

OPcache optimization

For best performance, define your container factories in a dedicated PHP file. This allows OPcache to compile and cache the file, avoiding repeated parsing on every request.

// config/services.php
return [
    LoggerInterface::class => static fn (): FileLogger => new FileLogger('/var/log/app.log'),
    Connection::class      => static fn (): Connection => new Connection('sqlite::memory:'),
];
// public/index.php
$container = new Container(require __DIR__ . '/../config/services.php');

License

MIT

统计信息

  • 总下载量: 1
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-02-27

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固