/**
  * Get instance with container
  *
  * @param string $in            Scope::SINGLETON | Scope::PROTOTYPE
  * @param string $bindingToType AbstractModule::TO_CLASS | AbstractModule::TO_PROVIDER ...
  * @param mixed  $target        target interface or class
  *
  * @return mixed
  */
 public function getInstanceWithContainer($in, $bindingToType, $target)
 {
     if ($in === Scope::SINGLETON && $this->container->has($target)) {
         $instance = $this->container->get($target);
         return $instance;
     }
     $isToClassBinding = $bindingToType === AbstractModule::TO_CLASS;
     $instance = $isToClassBinding ? $this->injector->getInstance($target) : $this->getProvidedInstance($target);
     if ($in === Scope::SINGLETON) {
         $this->container->set($target, $instance);
     }
     return $instance;
 }