| @@ 152-166 (lines=15) @@ | ||
| 149 | * |
|
| 150 | * @return void |
|
| 151 | */ |
|
| 152 | private function inject(string $key, $value) |
|
| 153 | { |
|
| 154 | foreach ($this->injectionStrategies as $strategy) { |
|
| 155 | if ($strategy->supports($this->object, $key, $value)) { |
|
| 156 | $strategy->inject($this->object, $key, $value); |
|
| 157 | ||
| 158 | return; |
|
| 159 | } |
|
| 160 | } |
|
| 161 | ||
| 162 | throw new LogicException(sprintf( |
|
| 163 | 'Property "%s" cannot be injected', |
|
| 164 | $key |
|
| 165 | )); |
|
| 166 | } |
|
| 167 | ||
| 168 | /** |
|
| 169 | * Extract the given property out of the object |
|
| @@ 175-187 (lines=13) @@ | ||
| 172 | * |
|
| 173 | * @return mixed |
|
| 174 | */ |
|
| 175 | private function extractProperty(string $property) |
|
| 176 | { |
|
| 177 | foreach ($this->extractionStrategies as $strategy) { |
|
| 178 | if ($strategy->supports($this->object, $property)) { |
|
| 179 | return $strategy->extract($this->object, $property); |
|
| 180 | } |
|
| 181 | } |
|
| 182 | ||
| 183 | throw new LogicException(sprintf( |
|
| 184 | 'Property "%s" cannot be extracted', |
|
| 185 | $property |
|
| 186 | )); |
|
| 187 | } |
|
| 188 | } |
|
| 189 | ||