Skip to content

Commit

Permalink
Merge branch 'cleanup'
Browse files Browse the repository at this point in the history
* cleanup:
  refactor: cleanup things
  • Loading branch information
feryardiant committed Jun 12, 2020
2 parents c80138e + 29884db commit 88f076f
Show file tree
Hide file tree
Showing 16 changed files with 236 additions and 203 deletions.
8 changes: 5 additions & 3 deletions .codeclimate.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
version: "2"

checks:
method-complexity:
config:
threshold: 9

engines:
fixme:
enabled: true
phan:
enabled: true
phpcodesniffer:
enabled: true
phpmd:
Expand All @@ -16,4 +19,3 @@ ratings:

exclude_paths:
- test/**/*
# - vendor/**/*
5 changes: 5 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@
"Projek\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"Stubs\\": "test/stub"
}
},
"require": {
"php": "^7.1",
"psr/container": "^1.0"
Expand Down
48 changes: 21 additions & 27 deletions src/Container.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,23 @@
class Container implements ContainerInterface
{
/**
* @var array List of instances that been initiated.
* List of instances that been initiated.
*
* @var array<string, mixed>
*/
private $instances = [];

/**
* @var array List of resolved instances.
*/
private $resolved;

/**
* @var Resolver Service container resolver.
* Service container resolver.
*
* @var Resolver
*/
private $resolver;

/**
* Create new instance.
*
* @param array $instances
* @param array<string, mixed> $instances
*/
public function __construct(array $instances = [])
{
Expand All @@ -36,29 +35,24 @@ public function __construct(array $instances = [])
$this->set(ContainerInterface::class, $this);
$this->set(PsrContainerInterface::class, $this);

foreach ($instances as $abstract => $concrete) {
$this->set($abstract, $concrete);
foreach ($instances as $id => $instance) {
$this->set($id, $instance);
}
}

/**
* {@inheritDoc}
*/
public function get($abstract)
public function get($id)
{
if (! $this->has($abstract)) {
throw new NotFoundException($abstract);
}

if (isset($this->resolved[$abstract])) {
return $this->resolved[$abstract];
if (! $this->has($id)) {
throw new NotFoundException($id);
}

$instance = $this->instances[$abstract];
$instance = $this->instances[$id];

if (is_callable($instance)) {
$this->resolved[$abstract] = $this->resolver->handle($instance);
return $this->resolved[$abstract];
return $this->resolver->handle($instance);
}

return $instance;
Expand All @@ -67,28 +61,28 @@ public function get($abstract)
/**
* {@inheritDoc}
*/
public function has($abstract) : bool
public function has($id)
{
return array_key_exists($abstract, $this->instances);
return array_key_exists($id, $this->instances);
}

/**
* {@inheritDoc}
*/
public function set(string $abstract, $concrete) : void
public function set(string $id, $instance) : void
{
if ($this->has($abstract)) {
if ($this->has($id)) {
return;
}

$this->instances[$abstract] = $this->resolver->resolve($concrete);
$this->instances[$id] = $this->resolver->resolve($instance);
}

/**
* {@inheritDoc}
*/
public function unset(string $abstract) : void
public function unset(string $id) : void
{
unset($this->instances[$abstract]);
unset($this->instances[$id]);
}
}
28 changes: 14 additions & 14 deletions src/Container/ArrayContainer.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,49 +14,49 @@ final class ArrayContainer implements \ArrayAccess
*
* @param ContainerInterface $container
*/
final public function __construct(ContainerInterface $container)
public function __construct(ContainerInterface $container)
{
$this->container = $container;
}

/**
* @param string $abstract
* @param mixed $concrete
* @param string $name
* @param mixed $instance
* @return void
*/
public function offsetSet($abstract, $concrete)
public function offsetSet($name, $instance)
{
$this->container->set($abstract, $concrete);
$this->container->set($name, $instance);
}

/**
* @param string $abstract
* @param string $name
* @return mixed
*/
public function offsetGet($abstract)
public function offsetGet($name)
{
try {
return $this->container->get($abstract);
return $this->container->get($name);
} catch (NotFoundException $e) {
return null;
}
}

/**
* @param string $abstract
* @param string $name
* @return bool
*/
public function offsetExists($abstract)
public function offsetExists($name)
{
return $this->container->has($abstract);
return $this->container->has($name);
}

/**
* @param string $abstract
* @param string $name
* @return void
*/
public function offsetUnset($abstract)
public function offsetUnset($name)
{
$this->container->unset($abstract);
$this->container->unset($name);
}
}
10 changes: 5 additions & 5 deletions src/Container/ContainerInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,17 @@ interface ContainerInterface extends PsrContainerInterface
/**
* Add new instance.
*
* @param string $abstract
* @param mixed $concrete
* @param string $id
* @param mixed $instance
* @return void
*/
public function set(string $abstract, $concrete) : void;
public function set(string $id, $instance) : void;

/**
* Unset instance.
*
* @param string $abstract
* @param string $id
* @return void
*/
public function unset(string $abstract) : void;
public function unset(string $id) : void;
}
26 changes: 13 additions & 13 deletions src/Container/PropertyContainer.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,43 +20,43 @@ public function __construct(ContainerInterface $container)
}

/**
* @param string $abstract
* @param mixed $concrete
* @param string $name
* @param mixed $instance
* @return void
*/
public function __set($abstract, $concrete)
public function __set(string $name, $instance) : void
{
$this->container->set($abstract, $concrete);
$this->container->set($name, $instance);
}

/**
* @param string $abstract
* @param string $name
* @return mixed
*/
public function __get($abstract)
public function __get(string $name)
{
try {
return $this->container->get($abstract);
return $this->container->get($name);
} catch (NotFoundException $e) {
return null;
}
}

/**
* @param string $abstract
* @param string $name
* @return bool
*/
public function __isset($abstract)
public function __isset(string $name) : bool
{
return $this->container->has($abstract);
return $this->container->has($name);
}

/**
* @param string $abstract
* @param string $name
* @return void
*/
public function __unset($abstract)
public function __unset(string $name) : void
{
$this->container->unset($abstract);
$this->container->unset($name);
}
}
Loading

0 comments on commit 88f076f

Please sign in to comment.