Code Coverage  | 
     ||||||||||
Classes and Traits  | 
      Functions and Methods  | 
      Lines  | 
     ||||||||
| Total |         | 
      0.00%  | 
      0 / 1  | 
              | 
      0.00%  | 
      0 / 3  | 
      CRAP |         | 
      0.00%  | 
      0 / 13  | 
     
| ClassConfig\AbstractConfig |         | 
      0.00%  | 
      0 / 1  | 
              | 
      0.00%  | 
      0 / 3  | 
      30 |         | 
      0.00%  | 
      0 / 13  | 
     
| __construct |         | 
      0.00%  | 
      0 / 1  | 
      2 |         | 
      0.00%  | 
      0 / 4  | 
     |||
| exists |         | 
      0.00%  | 
      0 / 1  | 
      2 |         | 
      0.00%  | 
      0 / 1  | 
     |||
| depend |         | 
      0.00%  | 
      0 / 1  | 
      12 |         | 
      0.00%  | 
      0 / 8  | 
     |||
| <?php | |
| namespace ClassConfig; | |
| use ClassConfig\Exceptions\MissingConfigException; | |
| /** | |
| * Class Config | |
| * @package ClassConfig | |
| */ | |
| abstract class AbstractConfig | |
| { | |
| /** | |
| * @var object | |
| */ | |
| protected $___owner; | |
| /** | |
| * @var null|AbstractConfig | |
| */ | |
| protected $___parent; | |
| /** | |
| * @var null|string | |
| */ | |
| protected $___key; | |
| /** | |
| * AbstractConfig constructor. | |
| * | |
| * @param object $owner | |
| * @param AbstractConfig|null $parent | |
| * @param string|null $key | |
| */ | |
| public function __construct($owner, AbstractConfig $parent = null, string $key = null) | |
| { | |
| $this->___owner = $owner; | |
| $this->___parent = $parent; | |
| $this->___key = $key; | |
| } | |
| /** | |
| * @param string $key | |
| * @return bool | |
| */ | |
| public function exists(string $key): bool | |
| { | |
| return property_exists($this, '__' . $key . '__'); | |
| } | |
| /** | |
| * @param string $key | |
| * @return AbstractConfig | |
| * @throws MissingConfigException | |
| */ | |
| public function depend(string $key): AbstractConfig | |
| { | |
| if (!isset($this->$key)) { | |
| $trail = [$key]; | |
| $config = $this; | |
| while ($config->___parent) { | |
| $trail[] = $config->___key; | |
| $config = $config->___parent; | |
| } | |
| throw new MissingConfigException(array_reverse($trail)); | |
| } | |
| return $this; | |
| } | |
| } |