/**
  * Adds an instance or closure as a proxy target
  *
  * @param string $alias The statical name you call
  * @param string $proxy The namespaced proxy class
  * @param mixed $target The target instance or closure
  * @param mixed $namespace Optional namespace
  */
 public function addProxyInstance($alias, $proxy, $target, $namespace = null)
 {
     $proxy = Input::checkNamespace($proxy);
     if (!is_object($target)) {
         throw new \InvalidArgumentException('Target must be an instance or closure.');
     }
     $this->addProxy($proxy, null, $target);
     $this->aliasManager->add($proxy, $alias);
     if ($namespace) {
         $this->addNamespace($alias, $namespace);
     }
 }
 /**
  * Returns the group name for the namespace input type.
  *
  * @param string $namespace
  * @return string
  */
 protected function getNamespaceGroup($namespace)
 {
     $namespace = Input::checkNamespace($namespace);
     if ('*' === substr($namespace, -1)) {
         if ('*' === $namespace) {
             $group = 'any';
         } else {
             $group = 'path';
         }
     } else {
         $group = 'name';
     }
     return $group;
 }