diInstanceManager = $diInstanceManager; $this->container = $container; // localize state $this->aliases = &$diInstanceManager->aliases; $this->sharedInstances = &$diInstanceManager->sharedInstances; $this->sharedInstancesWithParams = &$diInstanceManager->sharedInstancesWithParams; $this->configurations = &$diInstanceManager->configurations; $this->typePreferences = &$diInstanceManager->typePreferences; } /** * Determine if we have a shared instance by class or alias * * @param $classOrAlias * @return bool */ public function hasSharedInstance($classOrAlias) { return ($this->container->has($classOrAlias) || $this->diInstanceManager->hasSharedInstance($classOrAlias)); } /** * Get shared instance * * @param $classOrAlias * @return mixed */ public function getSharedInstance($classOrAlias) { if ($this->container->has($classOrAlias)) { return $this->container->get($classOrAlias); } return $this->diInstanceManager->getSharedInstance($classOrAlias); } }