saritasa / laravel-middleware
Saritasa middleware for Laravel
Installs: 13 967
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 9
Forks: 1
Open Issues: 0
Requires
- php: >=7.0
- illuminate/http: >=5.0 <12.0
- illuminate/support: >=5.0 <12.0
Requires (Dev)
- phpunit/phpunit: ^6.0
- squizlabs/php_codesniffer: ^3.5
README
Middleware classes for Laravel
Laravel 5.x/6.x/9.x
Install the saritasa/laravel-middleware
package:
$ composer require saritasa/laravel-middleware
Optionally
If you use Laravel 5.4 or less,
or 5.5+ with package discovery disabled,
add the MiddlewareServiceProvider in config/app.php
:
'providers' => array( // ... Saritasa\Middleware\MiddlewareServiceProvider::class, )
It will register default aliases (middleware-key) for all middleware classes
Alternatively, you can just register selected middleware classes in App\Http\Kernel.php yourself
See https://laravel.com/docs/middleware#registering-middleware
Available classes
ClassName / middleware-key
ForceHttps / ssl
This middleware has 2 effects:
- If user tries to access website over HTTP protocol, redirect him to HTTPS.
- If request already is made over SSL, force HTTPS URL schema for all generated URLs.
Exception: if APP_ENV is set to 'local'.
This solves 2 problems:
- Application can be accessed via insecure protocol
- When application is behind proxy or load balancer, which terminates SSL, standard Laravel classes do not detect it correctly, and generate HTTP links to static resources (JS, CSS) - as result browser blocks them as insecure.
NoCache / no-cache
Insert HTTP headers, preventing content caching on proxy or in browser.
AdminAuthenticate / admin
Checks, that user has role = 'admin'. If not, access is denied.
AjaxOnly / ajax-only
If request was not made via AJAX (with XMLHttpRequest), return 'Bad Request' error.
Contributing
- Create fork, checkout it
- Develop locally as usual. Code must follow PSR-1, PSR-2 - run PHP_CodeSniffer to ensure, that code follows style guides
- Cover added functionality with unit tests and run PHPUnit to make sure, that all tests pass
- Update README.md to describe new or changed functionality
- Add changes description to CHANGES.md file. Use Semantic Versioning convention to determine next version number.
- When ready, create pull request
Make shortcuts
If you have GNU Make installed, you can use following shortcuts:
make cs
(instead ofphp vendor/bin/phpcs
) - run static code analysis with PHP_CodeSniffer to check code stylemake csfix
(instead ofphp vendor/bin/phpcbf
) - fix code style violations with PHP_CodeSniffer automatically, where possible (ex. PSR-2 code formatting violations)make test
(instead ofphp vendor/bin/phpunit
) - run tests with PHPUnitmake install
- instead ofcomposer install
make all
or justmake
without parameters - invokes described above install, cs, test tasks sequentially - project will be assembled, checked with linter and tested with one single command