saeedpooyanfar/laravel-annotation

Laravel #[Annotation]

5.0.0 2024-04-22 11:55 UTC

This package is auto-updated.

Last update: 2024-11-22 13:08:42 UTC


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()
    {
    }
}