A PHP 8+ library intended to provide spec-compliant CORS middleware for projects running on Amp's http-server.
Though this library lives under the Labrador namespace it has only one dependency, amphp/http-server
, and does not depend
on any other Labrador packages.
Composer is the only supported method for installing Labrador packages.
composer require cspray/labrador-http-cors
Below is an example using the fluent API. Please check out the documentation for more details and examples of non-fluent usage.
<?php
use Cspray\Labrador\Http\Cors\ConfigurationBuilder;
use Cspray\Labrador\Http\Cors\SimpleConfigurationLoader;
use Cspray\Labrador\Http\Cors\CorsMiddleware;
$configuration = ConfigurationBuilder::forOrigins('https://example.com', 'https://foo.example.com')
->allowMethods('GET', 'POST', 'PUT', 'DELETE')
->withMaxAge(8600)
->allowRequestHeaders('X-Request-Header')
->exposeResponseHeaders('X-Response-Header')
->doAllowCredentials()
->build();
$loader = new SimpleConfigurationLoader($configuration);
$middleware = new CorsMiddleware($loader);
Only the 1.x release series is officially supported at this time. The previous 0.x release series will not see new features and will only see critical security fixes.
Labrador packages have thorough documentation in-repo in the docs/
directory. You can also check out the documentation
online at https://labrador-kennel.io/docs/http-cors.
All Labrador packages adhere to the rules laid out in the Labrador Governance repo.