abstractFactories, $factory); } else { array_push($this->abstractFactories, $factory); } return $this; } /** * Unregister a service * * Called when $allowOverride is true and we detect that a service being * added to the instance already exists. This will remove the duplicate * entry, and also any shared flags previously registered. * * @param string $canonical * @return void */ protected function unregisterService($canonical) { $types = ['invokableClasses', 'factories', 'aliases']; foreach ($types as $type) { if (isset($this->{$type}[$canonical])) { unset($this->{$type}[$canonical]); break; } } if (isset($this->instances[$canonical])) { unset($this->instances[$canonical]); } if (isset($this->shared[$canonical])) { unset($this->shared[$canonical]); } } }