konecnyjakub/container

A simple PSR-11 container

1.0.0 2025-02-22 15:52 UTC

This package is auto-updated.

Last update: 2025-02-22 16:33:15 UTC


README

Total Downloads Latest Stable Version build status coverage report License

This is a simple PSR-11 container.

Installation

The best way to install Container is via Composer. Just add konecnyjakub/container to your dependencies.

Quick start

<?php
declare(strict_types=1);

use Konecnyjakub\Container\SimpleContainer;
use stdClass;

$container = new SimpleContainer();
$service = new stdClass();
$service->var = "abc";
$container->set("one", $service);
$container->has("one"); // true
var_dump($container->get("one") === $service); // true

Advanced usage

This package provides a simple PSR-11 compliant container. It does not have any exciting features/options and frankly, there is little reason to use it a real application. Below are all the things that it can do.

<?php
declare(strict_types=1);

use Konecnyjakub\Container\SimpleContainer;
use stdClass;

$container = new SimpleContainer();
$container->isLocked(); // false
$container->has("one"); // false
$service = new stdClass();
$service->var = "abc";
$container->set("one", $service);
$container->has("one"); // true
var_dump($container->get("one") === $service); // true
$container->delete("one");
$container->has("one"); // false
$container->lock();
$container->isLocked(); // true
$container->set("one", $service); // throws an exception
$container->delete("one"); // throws an exception