public static function getInstance($id = 'default')
    {
        if (!isset(static::$instances[$id])) {
            static::$instances[$id] = new self();
        }
        
        return static::$instances[$id];
    }
public static function getInstance($id = 'default')
    {
        if (!isset(static::$instances[$id])) {
            static::$instances[$id] = new self();
        }
        
        return static::$instances[$id];
    }
public static function getInstance ( $ id = 'default' ) { if ( ! isset ( static :: $ instances [ $ id ] ) ) { static :: $ instances [ $ id ] = new self ( ) ; } return static :: $ instances [ $ id ] ; }
If identifier exists it will be return instance,
if not new instance will create.

@param mixed $id Identifier of instance.

@return Path
If identifier exists it will be return instance if not new instance will create .