/** * returns the requested instance from the scope * * @param \ReflectionClass $impl concrete implementation * @param \stubbles\ioc\InjectionProvider $provider * @return object */ public function getInstance(\ReflectionClass $impl, InjectionProvider $provider) { $key = $impl->getName(); if (!isset($this->instances[$key])) { $this->instances[$key] = $provider->get(); } return $this->instances[$key]; }
/** * returns the requested instance from the scope * * @param \ReflectionClass $impl concrete implementation * @param InjectionProvider $provider * @return mixed */ public function getInstance(\ReflectionClass $impl, InjectionProvider $provider) { $key = $impl->getName(); if (isset(self::$instances[$key])) { return self::$instances[$key]; } self::$instances[$key] = $provider->get(); return self::$instances[$key]; }
/** * returns the requested instance from the scope * * @param \ReflectionClass $impl concrete implementation * @param \stubbles\ioc\InjectionProvider $provider * @return object * @throws \RuntimeException */ public function getInstance(\ReflectionClass $impl, InjectionProvider $provider) { if (null === $this->session) { throw new \RuntimeException('Can not create session-scoped instance for ' . $impl->getName() . ', no session set in session scope'); } $key = self::SESSION_KEY . $impl->getName(); if ($this->session->hasValue($key)) { return $this->session->value($key); } $instance = $provider->get(); $this->session->putValue($key, $instance); return $instance; }