Download the PHP package neomerx/cors-illuminate without Composer
On this page you can find all versions of the php package neomerx/cors-illuminate. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download neomerx/cors-illuminate
More information about neomerx/cors-illuminate
Files in neomerx/cors-illuminate
Package cors-illuminate
Short Description CORS (Cross-Origin Resource Sharing) support for Laravel and Lumen
License Apache-2.0
Homepage https://github.com/neomerx/cors-illuminate
Informations about the package cors-illuminate
Description
This package adds Cross-Origin Resource Sharing (CORS) support to your Laravel application.
The package is based on Framework agnostic (PSR-7) CORS implementation.
The current version V3 is designed for Laravel 6 or higher. If you use lower Laravel version please use V2.
Install
1 Composer
2.1 Laravel
For Lumen skip this step and see step 2.2
Create a config file by executing
it will create config/cors-illuminate.php
file in you application.
Add CORS middleware to your HTTP stack at app/Http/Kernel.php
file. The middleware should be added to $middleware
list which is executed for all routes (even non declared in your routes file). Preferably before 'heavy' middleware for performance reasons.
Next see step 3
2.2 Lumen
For Laravel skip this step
In bootstrap/app.php
add CORS to global middleware list
and register CORS provider
As Lumen does not support vendor:publish
command file vendor/neomerx/cors-illuminate/config/cors-illuminate.php
have to be manually copied to config/cors-illuminate.php
.
Next see step 3
3 Configuration
Configuration file is extensively commented so it will be easy for you to set up it for your needs. First settings you need to configure are server origin (URL) and allowed origins
Exceptions and CORS headers
When exceptions are thrown and responses are created in Laravel/Lumen exception handlers middleware will be excluded from handling responses. It means CORS middleware will not add its CORS headers to responses. For this reason CORS results (including headers) are registered in Laravel/Lumen Container and made accessible from any part of your application including exception handlers.
Code sample for reading CORS headers
Customization
This package provides a number of ways how its behaviour could be customized.
The following methods of class CorsMiddleware
could be replaced in descendant classes
getResponseOnError
You can override this method in order to customize error reply.getCorsAnalysis
You can override this method to modify how CORS analysis result is saved to Illuminate Container.getRequestAdapter
You can override this method to replaceIlluminateRequestToPsr7
adapter with another one.
Additionally a custom AnalysisStrategyInterface could be injected by
- overriding
getCreateAnalysisStrategyClosure
method inServiceProvider
for Laravel/Lumen - using Laravel/Lumen Container binding for interface
AnalysisStrategyInterface
Also custom AnalyzerInterface could be injected by
- overriding
getCreateAnalyzerClosure
method inServiceProvider
for Laravel/Lumen - using Laravel/Lumen Container binding for interface
AnalyzerInterface
Testing
Contributing
Pull requests for documentation and code improvements (PSR-2, tests) are welcome.
Versioning
This package is using Semantic Versioning.
License
Apache License (Version 2.0). Please see License File for more information.
All versions of cors-illuminate with dependencies
psr/http-message Version ^1.0
psr/log Version ^1.0
illuminate/http Version ^6.0
neomerx/cors-psr7 Version ^2.0