saeedpooyanfar / laravel-annotation
Laravel #[Annotation]
Installs: 1 448
Dependents: 0
Suggesters: 0
Security: 0
Stars: 17
Watchers: 3
Forks: 1
Open Issues: 0
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() { } }