/** * Pre-process configuration. (v3) * * Checks for invokables, and, if found, maps them to the * component-specific RouteInvokableFactory; removes the invokables entry * before passing to the parent. * * @param array $config * @return void */ public function configure(array $config) { if (isset($config['invokables']) && !empty($config['invokables'])) { $aliases = $this->createAliasesForInvokables($config['invokables']); $factories = $this->createFactoriesForInvokables($config['invokables']); if (!empty($aliases)) { $config['aliases'] = isset($config['aliases']) ? array_merge($config['aliases'], $aliases) : $aliases; } $config['factories'] = isset($config['factories']) ? array_merge($config['factories'], $factories) : $factories; unset($config['invokables']); } parent::configure($config); }
/** * Overrides parent::configure in order to ensure default initializers are in expected positions. * * Always pushes `injectFactory` to top of initializer stack, and * `callElementInit` to the bottom. * * {@inheritDoc} */ public function configure(array $config) { $firstInitializer = [$this, 'injectFactory']; $lastInitializer = [$this, 'callElementInit']; foreach ([$firstInitializer, $lastInitializer] as $default) { if (false === ($index = array_search($default, $this->initializers))) { continue; } unset($this->initializers[$index]); } parent::configure($config); array_unshift($this->initializers, $firstInitializer); array_push($this->initializers, $lastInitializer); return $this; }