| @@ 127-146 (lines=20) @@ | ||
| 124 | * @throws InvalidArgumentException |
|
| 125 | * @throws LogicException |
|
| 126 | */ |
|
| 127 | private function defineName(string $name) |
|
| 128 | { |
|
| 129 | $name = trim($name); |
|
| 130 | ||
| 131 | if (empty($name)) { |
|
| 132 | throw new SectionException("Name of section {$this->getType()} can't be empty."); |
|
| 133 | } |
|
| 134 | ||
| 135 | if(! $this->isValidName($name)) { |
|
| 136 | throw new SectionException('Name of definition must contains only A-Za-z and _ symbols'); |
|
| 137 | } |
|
| 138 | ||
| 139 | foreach ($this->getSelfTypeIterator() as $definition) { |
|
| 140 | if($definition->getName() === $name) { |
|
| 141 | throw new SectionException("Duplicate name {$name} found in {$this->getType()} section"); |
|
| 142 | } |
|
| 143 | } |
|
| 144 | ||
| 145 | $this->name = $name; |
|
| 146 | } |
|
| 147 | ||
| 148 | /** |
|
| 149 | * @param string $inheritance |
|
| @@ 154-172 (lines=19) @@ | ||
| 151 | * @throws LogicException |
|
| 152 | * @throws InvalidArgumentException |
|
| 153 | */ |
|
| 154 | private function defineInheritance(string $inheritance) |
|
| 155 | { |
|
| 156 | $inheritance = trim($inheritance); |
|
| 157 | ||
| 158 | if(! $this->isValidName($inheritance)) { |
|
| 159 | throw new SectionException('Inheritance of definition must contains only A-Za-z and _ symbols'); |
|
| 160 | } |
|
| 161 | ||
| 162 | foreach ($this->getSelfTypeIterator() as $definition) { |
|
| 163 | if($definition->getName() === $inheritance) { |
|
| 164 | $this->inheritance = $definition; |
|
| 165 | } |
|
| 166 | } |
|
| 167 | ||
| 168 | if (! $this->isHasInheritance()) { |
|
| 169 | throw new SectionException("Inheritance with name {$inheritance} of section {$this->getType()} doesn't exists in configuration"); |
|
| 170 | } |
|
| 171 | ||
| 172 | } |
|
| 173 | ||
| 174 | /** |
|
| 175 | * @param $name |
|