code: 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;
      }
docs: returns the requested instance from the scope
  
  @param   \ReflectionClass                 $impl      concrete implementation
  @param   \stubbles\ioc\InjectionProvider  $provider
  @return  object
  @throws  \RuntimeException