PHPackages                             krubio/perfect-router - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. krubio/perfect-router

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

krubio/perfect-router
=====================

A Perfect Router

0.2.0(2mo ago)1301MITPHPCI failing

Since Jun 2Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/benanamen/perfect-router)[ Packagist](https://packagist.org/packages/krubio/perfect-router)[ RSS](/packages/krubio-perfect-router/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (4)Versions (3)Used By (0)

[![codecov](https://camo.githubusercontent.com/3def41122fa785543a14f163c0a67bf4ac7609636f1af6e1d6f3d224c41b2f14/68747470733a2f2f636f6465636f762e696f2f67682f62656e616e616d656e2f706572666563742d726f757465722f6272616e63682f6d61737465722f67726170682f62616467652e7376673f746f6b656e3d52586d706c63504e7a7a)](https://codecov.io/gh/benanamen/perfect-router)[![SonarCloud](https://github.com/benanamen/perfect-router/actions/workflows/build.yml/badge.svg)](https://github.com/benanamen/perfect-router/actions/workflows/build.yml)

[![Coverage](https://camo.githubusercontent.com/17951136a83d412f1a3487154c073e391a726e4346665eb1c557d9a9539c5231/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d62656e616e616d656e5f706572666563742d726f75746572266d65747269633d636f766572616765)](https://sonarcloud.io/summary/new_code?id=benanamen_perfect-router)[![Maintainability Rating](https://camo.githubusercontent.com/af28c216158b2395c1384b053dda130b7e5805fde260475a6f40ec1600203cb7/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d62656e616e616d656e5f706572666563742d726f75746572266d65747269633d7371616c655f726174696e67)](https://sonarcloud.io/summary/new_code?id=benanamen_perfect-router)[![Code Smells](https://camo.githubusercontent.com/7a5a8cd53dc0a41a125404ef91e6fd9f0b58e62e310c3a4c5d84523686b56188/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d62656e616e616d656e5f706572666563742d726f75746572266d65747269633d636f64655f736d656c6c73)](https://sonarcloud.io/summary/new_code?id=benanamen_perfect-router)[![Technical Debt](https://camo.githubusercontent.com/b0306d32629eed3b40405b184063084192b3fe757c8c3eb665ff50f2da81358c/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d62656e616e616d656e5f706572666563742d726f75746572266d65747269633d7371616c655f696e646578)](https://sonarcloud.io/summary/new_code?id=benanamen_perfect-router)[![Quality Gate Status](https://camo.githubusercontent.com/b8e284224a29b0e7335b2c4ad8934204a3165d3d6ac82204d666aabe2c6aa7b6/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d62656e616e616d656e5f706572666563742d726f75746572266d65747269633d616c6572745f737461747573)](https://sonarcloud.io/summary/new_code?id=benanamen_perfect-router)[![Reliability Rating](https://camo.githubusercontent.com/f796f3e6cadcd7d4ba50f436d77b4be63e2c4467e048fc97f00f405aa10bc9f0/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d62656e616e616d656e5f706572666563742d726f75746572266d65747269633d72656c696162696c6974795f726174696e67)](https://sonarcloud.io/summary/new_code?id=benanamen_perfect-router)[![Duplicated Lines (%)](https://camo.githubusercontent.com/d737d1b8dc027ec2d2d951b836c188d7ec75e5fcac57395834cdc3a80418d4df/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d62656e616e616d656e5f706572666563742d726f75746572266d65747269633d6475706c6963617465645f6c696e65735f64656e73697479)](https://sonarcloud.io/summary/new_code?id=benanamen_perfect-router)[![Vulnerabilities](https://camo.githubusercontent.com/55229d49aacbdcf2403bb7904709b781061d4fc9bfea567c31c581c240455c83/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d62656e616e616d656e5f706572666563742d726f75746572266d65747269633d76756c6e65726162696c6974696573)](https://sonarcloud.io/summary/new_code?id=benanamen_perfect-router)[![Bugs](https://camo.githubusercontent.com/ce979561a332c4d70fbb1e8343a9c1085e62070090187af8a2f36a262c8fa8f8/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d62656e616e616d656e5f706572666563742d726f75746572266d65747269633d62756773)](https://sonarcloud.io/summary/new_code?id=benanamen_perfect-router)[![Security Rating](https://camo.githubusercontent.com/9a05bc24f87d6070dee6245fa54c4b901f781b9f9c59e95097bb3f9ba3a6728a/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d62656e616e616d656e5f706572666563742d726f75746572266d65747269633d73656375726974795f726174696e67)](https://sonarcloud.io/summary/new_code?id=benanamen_perfect-router)

PerfectRouter
=============

[](#perfectrouter)

Description
-----------

[](#description)

PerfectRouter is a PHP routing library that provides a simple and efficient way to handle HTTP requests in your web application. It allows developers to define routes using attributes and automatically register controllers and their methods as route handlers. PerfectRouter works seamlessly with PerfectContainer to manage dependencies and create controller instances.

Features
--------

[](#features)

- **Attribute-Based Routing**: Define routes directly in controller methods using PHP 8 attributes.
- **Auto-Registration**: Automatically register controllers and their routes from a specified directory.
- **Dynamic Route Parameters**: Capture dynamic parameters directly from the URL.
- **HTTP Method Handling**: Define routes for specific HTTP methods (GET, POST, etc.)
- **Custom 404 Handling**: Easily customize 404 Not Found responses.

Installation
------------

[](#installation)

Use Composer to install the PerfectRouter library.

```
composer require krubio/perfect-router
```

Examples
--------

[](#examples)

You can find examples in the `examples` directory of the project. Run `composer install` from the `examples` directory to install the required dependencies.

```
cd examples
composer install
```

Usage
-----

[](#usage)

Here's a basic usage example of PerfectRouter:

```
