php-vivace/di

View on GitHub
src/Container/Base.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
namespace vivace\di\Container;

use Psr\Container\ContainerInterface;
use function vivace\di\wrap;

class Base implements ContainerInterface
{
    protected $items = [];

    public function __construct(array $items = [])
    {
        $this->items = $items;
    }

    /**
     * @inheritdoc
     * @return callable|null
     */
    public function get($id): ?callable
    {
        return isset($this->items[$id]) ? wrap($this->items[$id]) : null;
    }

    /**
     * @inheritdoc
     * @return bool
     */
    public function has($id): bool
    {
        return isset($this->items[$id]);
    }

    public function delete(string $id)
    {
        unset($this->items[$id]);
    }
}