承接 attr-route/laravel-attribute-route 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱: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
  • 点击次数: 9
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

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

其他信息

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