| @@ 312-344 (lines=33) @@ | ||
| 309 | * @return AbstractViewHelper |
|
| 310 | * @throws ViewHelperException |
|
| 311 | */ |
|
| 312 | public function __call($name, $arguments) |
|
| 313 | { |
|
| 314 | // Search in core view helpers first |
|
| 315 | $coreViewHelper = __NAMESPACE__ . '\Helper\\' . ucfirst($name); |
|
| 316 | ||
| 317 | if (class_exists($coreViewHelper)) { |
|
| 318 | ||
| 319 | $class = new $coreViewHelper; |
|
| 320 | array_unshift($arguments, $this); |
|
| 321 | ||
| 322 | return call_user_func_array($class, $arguments); |
|
| 323 | ||
| 324 | } |
|
| 325 | ||
| 326 | // No core implementations found; search in custom view helpers |
|
| 327 | ||
| 328 | /** @var Config $config */ |
|
| 329 | $config = ServiceLocator::instance()->get(Config::class); |
|
| 330 | $namespace = '\\' . $config->get('namespacePrefix'); |
|
| 331 | ||
| 332 | $customViewHelper = $namespace . '\\View\\Helper\\' . ucfirst($name); |
|
| 333 | ||
| 334 | if (class_exists($customViewHelper)) { |
|
| 335 | ||
| 336 | $class = new $customViewHelper; |
|
| 337 | array_unshift($arguments, $this); |
|
| 338 | ||
| 339 | return call_user_func_array($class, $arguments); |
|
| 340 | ||
| 341 | } |
|
| 342 | ||
| 343 | throw new ViewHelperException('No view helper for "' . $name . '" found.'); |
|
| 344 | } |
|
| 345 | ||
| 346 | /** |
|
| 347 | * Destructor |
|
| @@ 209-241 (lines=33) @@ | ||
| 206 | * @return AbstractPlugin |
|
| 207 | * @throws PluginException |
|
| 208 | */ |
|
| 209 | public function __call($name, $arguments) |
|
| 210 | { |
|
| 211 | // Search in core view helpers first |
|
| 212 | $corePlugin = 'Faulancer\Plugin\\' . ucfirst($name); |
|
| 213 | ||
| 214 | if (class_exists($corePlugin)) { |
|
| 215 | ||
| 216 | $class = new $corePlugin; |
|
| 217 | array_unshift($arguments, $this); |
|
| 218 | ||
| 219 | return call_user_func_array($class, $arguments); |
|
| 220 | ||
| 221 | } |
|
| 222 | ||
| 223 | // No core implementations found; search in custom view helpers |
|
| 224 | ||
| 225 | /** @var Config $config */ |
|
| 226 | $config = ServiceLocator::instance()->get(Config::class); |
|
| 227 | $namespace = '\\' . $config->get('namespacePrefix'); |
|
| 228 | ||
| 229 | $customPlugin = $namespace . '\Plugin\\' . ucfirst($name); |
|
| 230 | ||
| 231 | if (class_exists($customPlugin)) { |
|
| 232 | ||
| 233 | $class = new $customPlugin; |
|
| 234 | array_unshift($arguments, $this); |
|
| 235 | ||
| 236 | return call_user_func_array($class, $arguments); |
|
| 237 | ||
| 238 | } |
|
| 239 | ||
| 240 | throw new PluginException('No plugin for "' . $name . '" found.'); |
|
| 241 | } |
|
| 242 | ||
| 243 | } |
|