poshtive/router

Convention-based route discovery for Laravel controllers using PHP attributes.
410
Install
composer require poshtive/router
Latest Version:v1.2.0
PHP:^8.3
License:MIT
Last Updated:Jul 11, 2026
Links: GitHub  ·  Packagist
Maintainer: moerqal

Laravel Router

Convention-based route discovery for Laravel controllers, with PHP attributes for overrides and metadata.

Status

Tests codecov

laravel-router is stable.

  • PHP: ^8.3
  • Laravel components: ^13.0
  • Test coverage: PHPUnit 11 + Orchestra Testbench 11, with src/ at 100% locally

Highlights

  • Public-method route discovery with minimal registration boilerplate
  • Support for nested controller resources and model-bound parameters
  • Convention-based HTTP verb resolution with optional explicit overrides
  • Middleware, where constraints, and inheritance-aware discovery
  • Strict duplicate detection and optional skipped-route reporting

Installation

Install the package with Composer:

composer require poshtive/router

Optionally publish the configuration file:

php artisan vendor:publish --provider="Poshtive\Router\RouterServiceProvider" --tag="config"

Quick Start

Configure route discovery in config/router.php:

'groups' => [
    'web' => [
        'paths' => [app_path('Http/Controllers')],
        'middleware' => ['web'],
    ],
],

Then add a controller method:

namespace App\Http\Controllers;

class UserController
{
    public function index() {}
}

This registers GET /user automatically after the service provider boots.

You can still define Laravel routes manually as usual.

Documentation

Testing

Run the package test suite with:

composer test

Generate a Clover coverage report for src/ with:

composer test:coverage

Changelog

Release notes are tracked in CHANGELOG.md.

Contributing

Contributions are welcome. Please feel free to submit issues or pull requests.

License

This package is open-sourced software licensed under the MIT license.