定制 diyorbek/laravel-attribute-routes 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

diyorbek/laravel-attribute-routes

最新稳定版本:v1.0.2

Composer 安装命令:

composer require diyorbek/laravel-attribute-routes

包简介

Laravel attribute-based route registrar package

README 文档

README

Пакет, позволяющий задавать маршруты (routes) прямо внутри методов контроллера с помощью #[Attribute] для Laravel 9+ и PHP 8+. Вместо объявления маршрутов в routes/web.php, вы можете указывать их напрямую в контроллерах.

🔧 Установка

  1. Установите через Composer:
composer require diyorbek/laravel-attribute-routes
  1. Laravel автоматически загрузит AttributeRouteServiceProvider. Если потребуется — можно добавить его вручную в config/app.php:
'providers' => [
    ...
    Diyorbek\AttributeRoutes\AttributeRouteServiceProvider::class,
],

📦 Как это работает?

Маршруты задаются с помощью атрибутов вроде #[Get], #[Post] и т.д. Эти атрибуты автоматически распознаются и регистрируются в системе маршрутизации Laravel.

🧪 Пример использования

1. Пример контроллера Http\Controllers\PostController.php:

<?php

namespace App\Http\Controllers;

use Diyorbek\AttributeRoutes\Routing\Attributes\Get;
use Diyorbek\AttributeRoutes\Routing\Attributes\Post;

class PostController extends Controller
{
    #[Get('/posts', name: 'posts.index', middleware: ['web'])]
    public function index()
    {
        return view('posts.index');
    }

    #[Post('/posts', name: 'posts.store', middleware: ['web'])]
    public function store()
    {
        // Сохранение данных
    }
}

✍️ Доступные атрибуты

Атрибут Описание
#[Get(uri)] Маршрут с методом GET
#[Post(uri)] Маршрут с методом POST
#[Put(uri)] Маршрут с методом PUT
#[Parch(uri)] Маршрут с методом PATCH
#[Delete(uri)] Маршрут с методом DELETE

Каждый атрибут может содержать следующие параметры:

#[Get('/url', name: 'route.name', middleware: ['web', 'auth'])]
Параметр Описание
uri Адрес маршрута (обязательный)
name Имя маршрута (необязательный)
middleware Список middleware (необязательный)

⚙️ Дополнительные настройки

Если ваши контроллеры находятся в другой директории, вы можете указать путь вручную в AttributeRouteRegistrar:

(new \Diyorbek\AttributeRoutes\AttributeRouteRegistrar())->registerRoutes(app_path('Custom/Controllers'));

❗ Примечания

  • Пакет работает только с PHP 8.0 или выше и Laravel 9+.
  • Поддерживаются только public методы контроллеров.
  • Не требуется регистрировать маршруты в routes/web.php. Однако, если маршрут работает только через web middleware, обязательно указывайте его.

🤝 Вклад в развитие

  1. Сделайте fork репозитория
  2. Создайте новую ветку
  3. Внесите изменения
  4. Отправьте Pull Request

📫 Автор

统计信息

  • 总下载量: 4
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-06-05