for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace DrMVC\Framework;
use DrMVC\Config\ConfigInterface;
class Containers implements ContainersInterface
{
/**
* @var array
*/
private $_containers = [];
* @param string $name
* @return mixed
private function getContainer(string $name)
return $this->_containers[$name];
}
* @param object $object
* @return ContainersInterface
private function setContainer(string $name, $object): ContainersInterface
$this->_containers[$name] = $object;
return $this;
* PSR-11 set container
*
* @param string $container
* @param string|object $object
* @param ConfigInterface $config
public function set(string $container, $object, ConfigInterface $config = null): ContainersInterface
if (\is_object($object)) {
$this->setContainer($container, $object);
} else {
$class = '\\DrMVC\\' . $object;
$this->setContainer($container, new $class($config));
* Get container by name
public function get($name)
// TODO: NotFoundExceptionInterface
return $this->has($name) ? $this->getContainer($name) : null;
* Container is exist
* @return bool
public function has($name): bool
return isset($this->_containers[$name]);