Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
50.00% |
4 / 8 |
CRAP | |
80.77% |
42 / 52 |
Dependency | |
0.00% |
0 / 1 |
|
50.00% |
4 / 8 |
29.44 | |
80.77% |
42 / 52 |
__construct($depName = NULL, $assoc = NULL, $resolve = true) | |
100.00% |
1 / 1 |
3 | |
100.00% |
3 / 3 |
|||
set($depName, $assoc, $resolve = true) | |
100.00% |
1 / 1 |
9 | |
100.00% |
22 / 22 |
|||
getName() | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
getClassName() | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
getArgs() | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
getObjectValue() | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
json() | |
100.00% |
1 / 1 |
6 | |
100.00% |
16 / 16 |
|||
__toString() | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 7 |
<?php | |
/** | |
* | |
*/ | |
namespace aae\di { | |
/** | |
* @author Axel Ancona Esselmann | |
* @package aae\di | |
*/ | |
class Dependency { | |
private $_name, $_className, $_isStatic = false, $_args = [], $_isObject = true, $_nonObjectValue; | |
public function __construct($depName = NULL, $assoc = NULL, $resolve = true) { | |
$this->_name = $depName; | |
if (!is_null($depName) && !is_null($assoc)) $this->set($depName, $assoc, $resolve); | |
} | |
public function set($depName, $assoc, $resolve = true) { | |
if (!array_key_exists($depName, $assoc)) throw new \Exception("The dependency \"$depName\" does not exist", 212151215); | |
$dep = $assoc[$depName]; | |
$this->_name = $depName; | |
if (is_array($dep)) { | |
$this->_className = $dep["class"]; | |
if (array_key_exists("static", $dep)) $this->_isStatic = $dep["static"]; | |
if (array_key_exists("args", $dep)) { | |
foreach ($dep["args"] as $arg) { | |
if (is_array($arg) && array_key_exists("dep", $arg)) { | |
$newDep = new Dependency($arg["dep"]); | |
if ($resolve) { | |
$newDep->set($arg["dep"], $assoc); | |
} | |
$arg = $newDep; | |
} | |
$this->_args[] = $arg; | |
} | |
} | |
} else { | |
$this->_nonObjectValue = $dep; | |
$this->_isObject = false; | |
} | |
return $this; | |
} | |
public function getName() { | |
return $this->_name; | |
} | |
public function getClassName() { | |
return $this->_className; | |
} | |
public function getArgs() { | |
return $this->_args; | |
} | |
public function getObjectValue() { | |
return $this->_nonObjectValue; | |
} | |
public function json() { | |
if ($this->_isObject) { | |
$assoc = [ | |
"class" => $this->_className, | |
"static" => $this->_isStatic | |
]; | |
if (count($this->_args) > 0) { | |
$args = []; | |
foreach ($this->_args as $arg) { | |
if (is_object($arg) && get_class($this) === get_class($arg)) { | |
$arg = ["dep"=>$arg->getName()]; | |
} | |
$args[] = $arg; | |
} | |
$assoc["args"] = $args; | |
} | |
return json_encode($assoc, JSON_PRETTY_PRINT); | |
} else { | |
return $this->_nonObjectValue; | |
} | |
} | |
public function __toString() { | |
if ($this->_isObject) { | |
// $assoc = [ | |
// "class" => $this->_className, | |
// "static" => $this->_isStatic | |
// ]; | |
// if (count($this->_args) > 0) { | |
// $args = []; | |
// foreach ($this->_args as $arg) { | |
// if (is_object($arg) && get_class($this) === get_class($arg)) { | |
// $arg = ["dep"=>$arg->getName()]; | |
// } | |
// $args[] = $arg; | |
// } | |
// $assoc["args"] = $args; | |
// } | |
// return json_encode($assoc); | |
return ""; | |
} else { | |
$result = $this->_nonObjectValue; | |
if (is_string($result)) { | |
$result = '"'.$result.'"'; | |
} | |
return $result; | |
} | |
} | |
} | |
} |