PHPackages                             interaapps/deverm - 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. interaapps/deverm

ActiveLibrary

interaapps/deverm
=================

5.3.0(3y ago)4691PHPPHP &gt;=8.1.0

Since Nov 17Pushed 3y ago1 watchersCompare

[ Source](https://github.com/interaapps/deverm-router)[ Packagist](https://packagist.org/packages/interaapps/deverm)[ RSS](/packages/interaapps-deverm/feed)WikiDiscussions master Synced 4d ago

READMEChangelog (10)Dependencies (1)Versions (11)Used By (1)

deverm-router 5.3
=================

[](#deverm-router-53)

Deverm-php-Router is an open-source PHP-router.

Contents
--------

[](#contents)

- [Installation](#installation)
- [Getting Started](#publicindexphp)
- [Controller](#using-controllers)
- [Route Variables](#route-variables)
- [Parameter Injection](#parameter-injection)
- [Middlewares](#middlewares)
- [Response Transformers](#response-transformers)

### Installation

[](#installation)

Deverm-Router requires `>PHP8.1`

```
uppm i deverm
# Or composer
composer require interaapps/deverm
```

### public/index.php

[](#publicindexphp)

```
use de\interaapps\ulole\router\Router;
use de\interaapps\ulole\router\Request;
use de\interaapps\ulole\router\Response;

// Set root directory of the project
chdir('..');
$router = new Router();

// If an object or array is returned in a handler, it'll be transformed into JSON
$router->jsonResponseTransformer();

$router->get("/test/{test}", function(Request $req, Response $res, string $test){
    return [
        "given_test" => $test
    ];
});

// Using method or function
$router->get("/test", test(...));

// Including php files
$router->setIncludeDirectory("resources/views");
$router->get("/", "homepage.php");

$router->notFound(function(Request $req, Response $res){
    echo "Not found :.(";
});

// Everytime an Exception gets thrown in request handlers
$router->exceptionHandler(function (Exception $e, Request $req) {
    return [
        "message" => $e->getMessage(),
        "error" => true
    ];
});

// Before interceptor
$router->before("/dashboard/{?*:path}", function(Request $req, Response $res) : bool {
    if ($loggedIn) {
        $req->attrib("loggedIn", true);
    } else {
        return true; // Intercepts. The notFound page will be called!
    }
    return false;
});

$router->get("/dashboard/bills", function(Request $req, Response $res){
    if ($req->attrib("loggedIn")) {
        echo "Logged in!";
    }
});

// Running the app
$router->run();
```

Using controllers
-----------------

[](#using-controllers)

```
