saeedpooyanfar / laravel-annotation
Laravel #[Annotation]
Installs: 2 587
Dependents: 0
Suggesters: 0
Security: 0
Stars: 17
Watchers: 3
Forks: 1
Open Issues: 0
pkg:composer/saeedpooyanfar/laravel-annotation
Requires
- php: ^8.2
Requires (Dev)
- illuminate/events: ^11.x-dev
- illuminate/routing: ^11.x-dev
- mockery/mockery: ^1.6
- phpunit/phpunit: ^10.5
README
Introduction
PHP 8.0 release was a revolution for the language.
It brings cool features like Named arguments, Attributes, Constructor property and ...
PHP 8.1 brings even more exciting features like Enumerations, New in initializers, Array unpacking and ...
The idea of this package is using PHP Attribute in a laravel project.
Installing
composer require saeedpooyanfar/laravel-annotation
Setup
In App\Http\Controllers\Controller::class :
Replace use Illuminate\Routing\Controller as BaseController;
With use LaravelAnnotation\BaseController;
Or if you don't want to change your BaseController you can:
Use LaravelAnnotation\AttributeMiddleware trait
In App\Http\Controllers\Controller::class
Middleware attribute
Here is an example that how you can use Middleware attribute in a laravel controller:
<?php use LaravelAnnotation\Attribute\Middleware; #[Middleware(RedirectIfAuthenticated::class, 'sanctum', except: 'logout')] class AuthController extends Controller { public function register() { } public function login() { } #[Middleware(Authenticate::class, 'sanctum')] public function logout() { } }