public function setIf(string $abstract, $concrete, bool $shared = false) : ContainerInterface
    {
        if (! $this->has($abstract)) {
            $this->set($abstract, $concrete, $shared);
        }

        return $this;
    }
public function setIf(string $abstract, $concrete, bool $shared = false) : ContainerInterface
    {
        if (! $this->has($abstract)) {
            $this->set($abstract, $concrete, $shared);
        }

        return $this;
    }
public function setIf ( string $ abstract , $ concrete , bool $ shared = false ) : ContainerInterface { if ( ! $ this -> has ( $ abstract ) ) { $ this -> set ( $ abstract , $ concrete , $ shared ) ; } return $ this ; }
Bind a new element to the container IF the element name not exists in the container.

@param string         $abstract The alias name that will be used to call the element.
@param string|closure $concrete The element class name, or an closure that makes the element.
@param bool           $shared   Define if the element will be a singleton instance.

@return ContainerInterface
Bind a new element to the container IF the element name not exists in the container .