public function shared(string $name, ...$args)
    {
        if (!isset(self::$share[$name])) {
            self::$share[$name] = $this->resolve($name, ...$args);
        }

        return self::$share[$name];
    }
public function shared(string $name, ...$args)
    {
        if (!isset(self::$share[$name])) {
            self::$share[$name] = $this->resolve($name, ...$args);
        }

        return self::$share[$name];
    }
public function shared ( string $ name , ... $ args ) { if ( ! isset ( self :: $ share [ $ name ] ) ) { self :: $ share [ $ name ] = $ this -> resolve ( $ name , ... $ args ) ; } return self :: $ share [ $ name ] ; }
Does the resolving but considers shared

@param *string $name Name of Resolver
@param *mixed  $args What to execute when we need resolving

@return mixed
Does the resolving but considers shared