PHPackages                             jp-codeplus/hazel-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. [Framework](/categories/framework)
4. /
5. jp-codeplus/hazel-router

ActiveLibrary[Framework](/categories/framework)

jp-codeplus/hazel-router
========================

A simple PHP router with middleware support and sitemap generation

v1.0.3(1y ago)0161MITPHPPHP &gt;=7.4

Since Oct 15Pushed 1y ago1 watchersCompare

[ Source](https://github.com/jp-codeplus/hazel-router)[ Packagist](https://packagist.org/packages/jp-codeplus/hazel-router)[ RSS](/packages/jp-codeplus-hazel-router/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)DependenciesVersions (5)Used By (0)

HazelRouter - Anleitung zur Verwendung
======================================

[](#hazelrouter---anleitung-zur-verwendung)

Der **HazelRouter** ist ein einfacher, anpassbarer PHP-Router mit Unterstützung für Middleware, dynamische Routenerstellung und automatischer XML-Sitemap-Generierung.

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

[](#installation)

Du kannst den HazelRouter ganz einfach über Composer installieren:

```
composer require jp-codeplus/hazel-router
```

Voraussetzungen
---------------

[](#voraussetzungen)

Stelle sicher, dass du folgende Dateien in deinem Projekt hast:

- `HazelRouter.php` (die Router-Klasse)
- `DemoController.php` (zum Testen der Controller)
- `DemoMiddleware.php` (zum Testen der Middleware)
- `routes.php` (eine Datei mit den definierten Routen)

Schritt-für-Schritt-Anleitung
-----------------------------

[](#schritt-für-schritt-anleitung)

### 1. Router initialisieren

[](#1-router-initialisieren)

Zuerst müssen wir den Router initialisieren und die notwendigen Dateien einbinden:

```
require __DIR__ . '/../src/HazelRouter.php';
require __DIR__ . '/DemoController.php';
require __DIR__ . '/DemoMiddleware.php';

// Basic Router-Initialisierung
$router = new JayPiii\HazelRouter();
$routerPath = __DIR__ . '/routes.php'; // ==> DEMO ROUTES
```

### 2. XML-Sitemap automatisch erstellen

[](#2-xml-sitemap-automatisch-erstellen)

Du kannst eine Sitemap einfach durch Aufruf der `createSitemap`-Methode erstellen. Gib die gewünschte URI und die Domain an:

```
$router->createSitemap('/sitemap.xml', 'http://hazel-router.test');
```

Dies erstellt eine Route, unter der die XML-Sitemap abgerufen werden kann.

### 3. Routen laden

[](#3-routen-laden)

Lade die Routen aus einer externen PHP-Datei. Die Datei sollte ein Array mit Routen zurückgeben:

```
$router->loadRoutes($routerPath);
```

### 4. Middleware hinzufügen

[](#4-middleware-hinzufügen)

Um Middleware hinzuzufügen, kannst du die `middleware`-Methode verwenden. Diese Methode unterstützt sowohl Closures als auch Klassenmethoden:

```
$router->middleware('myMiddleware', [DemoMiddleware::class, 'index']);
```

### 5. Router ausführen

[](#5-router-ausführen)

Rufe die Methode `run()` auf, um den Router auszuführen. Diese Methode überprüft die aktuelle Anfrage und führt die entsprechende Route aus:

```
$router->run();
```

### 6. Fehler anzeigen

[](#6-fehler-anzeigen)

Falls während der Verarbeitung Fehler auftreten, kannst du diese mit `displayErrors()` ausgeben:

```
if ($router->displayErrors() !== null) {
    echo $router->displayErrors();
}
```

Beispiel-Code
-------------

[](#beispiel-code)

Hier ist der vollständige Beispiel-Code für die Verwendung des HazelRouters:

```
require __DIR__ . '/../src/HazelRouter.php';
require __DIR__ . '/DemoController.php';
require __DIR__ . '/DemoMiddleware.php';

// Basic Router
$router = new JayPiii\HazelRouter();
$routerPath = __DIR__ . '/routes.php'; // ==> DEMO ROUTES
$router->createSitemap('/sitemap.xml', 'http://hazel-router.test');
$router->loadRoutes($routerPath);
$router->middleware('myMiddleware', [DemoMiddleware::class, 'index']);
$router->run();

if ($router->displayErrors() !== null) {
    echo $router->displayErrors();
}
```

Beispielhafte `routes.php`
--------------------------

[](#beispielhafte-routesphp)

Die Datei `routes.php` sollte ein Array mit Routen zurückgeben, die wie folgt definiert sind:

```
return [
    [
        'uri' => '/',
        'action' => [DemoController::class, 'index'],
        'method' => 'GET',
        'middleware' => ['myMiddleware'],
        'sitemap' => true,
        'visibility' => 'live'
    ],
    [
        'uri' => '/hello',
        'action' => [DemoController::class, 'hello'],
        'method' => 'GET',
        'middleware' => [],
        'sitemap' => false,
        'visibility' => 'staging'
    ],
    [
        'uri' => '/mellow',
        'action' => [DemoController::class, 'mellow'],
        'method' => 'GET',
        'middleware' => [],
        'sitemap' => true,
        'visibility' => 'live'
    ],
];
```

### Viel Spaß beim Programmieren mit dem **HazelRouter**!

[](#viel-spaß-beim-programmieren-mit-dem-hazelrouter)

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance36

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

4

Last Release

579d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/097b992409209c1ea9c846500c9c63e966e3af36af57976c4fef1b0ee4a23f74?d=identicon)[jp-codeplus](/maintainers/jp-codeplus)

---

Top Contributors

[![jp-codeplus](https://avatars.githubusercontent.com/u/184991006?v=4)](https://github.com/jp-codeplus "jp-codeplus (8 commits)")

### Embed Badge

![Health badge](/badges/jp-codeplus-hazel-router/health.svg)

```
[![Health](https://phpackages.com/badges/jp-codeplus-hazel-router/health.svg)](https://phpackages.com/packages/jp-codeplus-hazel-router)
```

###  Alternatives

[laravel/passport

Laravel Passport provides OAuth2 server support to Laravel.

3.4k85.0M532](/packages/laravel-passport)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M259](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

712181.8M596](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

1.4k47.7M121](/packages/cakephp-chronos)[laravel/pail

Easily delve into your Laravel application's log files directly from the command line.

91545.3M590](/packages/laravel-pail)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
