final static function parseWith($optionsResource, array $_ = null)
    {
        if (!static::isConfigurableWith($optionsResource))
            throw new \InvalidArgumentException(sprintf(
                'Resource must be an array or string, given: (%s).'
                , \Poirot\Std\flatten($optionsResource)
            ));

        $self = new static;
        (empty($_)) ?: $self->with($_);
        
        if (is_string($optionsResource))
            $optionsResource = $self->doParseFromString($optionsResource);

        return $optionsResource;
    }