attr-route/laravel-attribute-route 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

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

attr-route/laravel-attribute-route

最新稳定版本:v1.1.0

Composer 安装命令:

composer require attr-route/laravel-attribute-route

包简介

Enterprise-grade Laravel routing via PHP Attributes

README 文档

README

Latest Version on Packagist GitHub Tests Action Status Total Downloads

Created with love and with other contributors.

Laravel Attribute Routing is an enterprise-grade package that revolutionizes how you define routes in Laravel. Using PHP 8 Attributes, you can keep your routing logic close to your controllers, maintaining military-grade security and optimized performance.

🚀 Key Features

  • Intuitive Attributes: Define routes directly as "decorators" on your controller methods.
  • Controller-Level Groups: Define shared prefixes, middleware, and names at the class level.
  • Advanced Throttling: Support for tiered, repeatable #[RateLimit] attributes.
  • Unified Validation: Inline #[Validate] attribute for automated request validation.
  • Role/Policy Security: Seamless integration with Laravel Gates and Policies via #[Authorize].
  • High Performance: Optimized RouteTree matching and production-ready RouteCache.
  • Military-Grade Security: Namespace whitelisting and path injection prevention out of the box.

📦 Installation

Install the package via composer:

composer require attr-route/laravel-attribute-route

Publish the config file:

php artisan vendor:publish --provider="AttrRoute\AttributeRoute\AttributeRouteServiceProvider" --tag="config"

Smart Route Inference

The package automatically infers missing route properties from your controller methods, reducing boilerplate:

#[Route(method: 'GET')]
public function showProfile() { ... }
// Result: URI = /show-profile, Name = show-profile
  • Paths: CamelCase methods are automatically converted to kebab-case URIs.
  • Names: Route names are inferred from the method name if not explicitly provided.

Attribute "Decorators"

Using the built-in RouteAttributeMiddleware, attributes like #[Validate] and #[Authorize] behave like decorators, executing logic before your controller method:

#[Route(method: 'POST', path: '/users')]
#[Validate(rules: ['email' => 'required|email'])]
public function store(Request $request) { ... }

🧪 Enterprise Testing

The package includes a comprehensive suite of tests:

  • Unit Tests: Isolated testing for core services.
  • Feature Tests: Full integration testing via Orchestra Testbench.

Run tests using PHPUnit:

vendor/bin/phpunit

⚙️ Configuration

The config/route-attributes.php file allows you to customize:

  • scan_paths: Which directories should be scanned for attributes.
  • allowed_namespaces: Whitelist of namespaces for secure discovery.
  • cache: Enable/disable production route caching.

🛡️ Security

This package enforces strict security policies by default:

  • Namespace Whitelisting: Only controllers in allowed namespaces are scanned.
  • Injection Blocking: Route paths are validated against malicious character patterns.
  • State-Change Protection: Automated checks for state-changing HTTP methods.

🚀 Performance

  • Lazy Loading: Attributes are parsed via Reflection without instantiating controllers.
  • Optimized Matching: Uses a segment-based tree for fast route lookups.
  • Route Caching: Supports serialized route maps for zero-latency production boots.

🤝 Contributing

Please see CONTRIBUTING for details.

📄 License

The MIT License (MIT). Please see License File for more information.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-03-06

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固