/cors

PSR-15 middleware to implement Cross-Origin Resource Sharing (CORS)

Primary LanguagePHPMIT LicenseMIT

middlewares/cors

Latest Version on Packagist Software License Testing Total Downloads

Middleware to implement Cross-Origin Resource Sharing (CORS) using neomerx/cors-psr7.

Requirements

Installation

This package is installable and autoloadable via Composer as middlewares/cors.

composer require middlewares/cors

Example

use Neomerx\Cors\Strategies\Settings;
use Neomerx\Cors\Analyzer;

$settings = new Settings();
$settings->setServerOrigin('http', 'example.com', 123);

$analyzer = Analyzer::instance($settings);

$dispatcher = new Dispatcher([
    new Middlewares\Cors($analyzer)
]);

$response = $dispatcher->dispatch(new ServerRequest());

Usage

You have to provide a Neomerx\Cors\Contracts\AnalyzerInterface to the constructor. See neomerx/cors-psr7 for more info. Optionally, you can provide a Psr\Http\Message\ResponseFactoryInterface as the second argument to create the responses. If it's not defined, Middleware\Utils\Factory will be used to detect it automatically.

$analyzer = Analyzer::instance($settings);
$responseFactory = new MyOwnResponseFactory();

$cors = new Middlewares\Cors($analyzer, $responseFactory);

Please see CHANGELOG for more information about recent changes and CONTRIBUTING for contributing details.

The MIT License (MIT). Please see LICENSE for more information.