private function buildSettings(ServerRequestInterface $request, ResponseInterface $response): CorsSettings
    {
        $settings = new CorsSettings;

        $origin = array_fill_keys((array) $this->options["origin"], true);
        $settings->setRequestAllowedOrigins($origin);

        if (is_callable($this->options["methods"])) {
            $methods = (array) $this->options["methods"]($request, $response);
        } else {
            $methods = $this->options["methods"];
        }
        $methods = array_fill_keys($methods, true);
        $settings->setRequestAllowedMethods($methods);

        $headers = array_fill_keys($this->options["headers.allow"], true);
        $headers = array_change_key_case($headers, CASE_LOWER);
        $settings->setRequestAllowedHeaders($headers);

        $headers = array_fill_keys($this->options["headers.expose"], true);
        $settings->setResponseExposedHeaders($headers);

        $settings->setRequestCredentialsSupported($this->options["credentials"]);

        if (is_string($this->options["origin.server"])) {
            $settings->setServerOrigin($this->options["origin.server"]);
        }

        $settings->setPreFlightCacheMaxAge($this->options["cache"]);

        return $settings;
    }
private function buildSettings(ServerRequestInterface $request, ResponseInterface $response): CorsSettings
    {
        $settings = new CorsSettings;

        $origin = array_fill_keys((array) $this->options["origin"], true);
        $settings->setRequestAllowedOrigins($origin);

        if (is_callable($this->options["methods"])) {
            $methods = (array) $this->options["methods"]($request, $response);
        } else {
            $methods = $this->options["methods"];
        }
        $methods = array_fill_keys($methods, true);
        $settings->setRequestAllowedMethods($methods);

        $headers = array_fill_keys($this->options["headers.allow"], true);
        $headers = array_change_key_case($headers, CASE_LOWER);
        $settings->setRequestAllowedHeaders($headers);

        $headers = array_fill_keys($this->options["headers.expose"], true);
        $settings->setResponseExposedHeaders($headers);

        $settings->setRequestCredentialsSupported($this->options["credentials"]);

        if (is_string($this->options["origin.server"])) {
            $settings->setServerOrigin($this->options["origin.server"]);
        }

        $settings->setPreFlightCacheMaxAge($this->options["cache"]);

        return $settings;
    }
private function buildSettings ( ServerRequestInterface $ request , ResponseInterface $ response ) : CorsSettings { $ settings = new CorsSettings ; $ origin = array_fill_keys ( ( array ) $ this -> options [ "origin" ] , true ) ; $ settings -> setRequestAllowedOrigins ( $ origin ) ; if ( is_callable ( $ this -> options [ "methods" ] ) ) { $ methods = ( array ) $ this -> options [ "methods" ] ( $ request , $ response ) ; } else { $ methods = $ this -> options [ "methods" ] ; } $ methods = array_fill_keys ( $ methods , true ) ; $ settings -> setRequestAllowedMethods ( $ methods ) ; $ headers = array_fill_keys ( $ this -> options [ "headers.allow" ] , true ) ; $ headers = array_change_key_case ( $ headers , CASE_LOWER ) ; $ settings -> setRequestAllowedHeaders ( $ headers ) ; $ headers = array_fill_keys ( $ this -> options [ "headers.expose" ] , true ) ; $ settings -> setResponseExposedHeaders ( $ headers ) ; $ settings -> setRequestCredentialsSupported ( $ this -> options [ "credentials" ] ) ; if ( is_string ( $ this -> options [ "origin.server" ] ) ) { $ settings -> setServerOrigin ( $ this -> options [ "origin.server" ] ) ; } $ settings -> setPreFlightCacheMaxAge ( $ this -> options [ "cache" ] ) ; return $ settings ; }
Build a CORS settings object.
Build a CORS settings object .