for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* Container
* User: moyo
* Date: 2018/8/16
* Time: 4:45 PM
*/
namespace Carno\Container;
use Carno\Container\Exception\ObjectNotFoundException;
use Carno\Container\Injection\Constructor;
use Psr\Container\ContainerInterface;
class Container implements ContainerInterface
{
use Constructor;
* @var object[]
private $instances = [];
* @param string $id
* @return bool
public function has($id) : bool
return isset($this->instances[$id]);
}
* @return object|mixed
public function get($id)
if (isset($this->instances[$id])) {
return $this->instances[$id];
throw new ObjectNotFoundException($id);
* @param object $object
public function set(string $id, $object)
assert(is_object($object));
return $this->instances[$id] = $object;
* @param string $class
* @param mixed ...$args
public function object(string $class, ...$args)
return $this->creating($class, ...$args);