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, вы можете указывать их напрямую в контроллерах.
🔧 Установка
- Установите через Composer:
composer require diyorbek/laravel-attribute-routes
- 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. Однако, если маршрут работает только черезwebmiddleware, обязательно указывайте его.
🤝 Вклад в развитие
- Сделайте fork репозитория
- Создайте новую ветку
- Внесите изменения
- Отправьте Pull Request
📫 Автор
- Диёрбек (Telegram:
@Diyorbek_tj) - GitHub: github.com/diyorbektj
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-06-05