PHPackages                             mgx/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. [PSR &amp; Standards](/categories/psr-standards)
4. /
5. mgx/router

ActiveLibrary[PSR &amp; Standards](/categories/psr-standards)

mgx/router
==========

Modern, esnek ve PSR-4 uyumlu PHP router/middleware sistemi

v1.0.2(9mo ago)010MITPHPPHP &gt;=8.1

Since Jul 22Pushed 8mo agoCompare

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

READMEChangelogDependenciesVersions (4)Used By (0)

=======

mgx-router
==========

[](#mgx-router)

---

Kurulum
-------

[](#kurulum)

```
composer require mgx/router
```

`composer.json` dosyanızda PSR-4 autoload tanımı otomatik olarak yapılır.

---

Temel Kullanım
--------------

[](#temel-kullanım)

```
use Mgx\Router\Router;

$router = new Router();
```

---

Route Tanımlama
---------------

[](#route-tanımlama)

### Basit GET Route (Closure)

[](#basit-get-route-closure)

```
$router->get('/hello', function($request) {
    return 'Merhaba Dünya!';
});
```

- `/hello` adresine gelen GET isteğinde çalışır.
- `$request` parametresi ile [`Request`](mgx-router/src/Request.php) nesnesine erişebilirsiniz.

---

### POST Route

[](#post-route)

```
$router->post('/api/data', function($request) {
    $data = $request->input();
    return 'Gelen veri: ' . json_encode($data);
});
```

- POST body veya form verisine `$request->input()` ile ulaşılır.

---

### Controller@method Handler

[](#controllermethod-handler)

```
$router->get('/users/{id}', 'App\Controllers\UserController@show');
```

- `App\Controllers\UserController` sınıfındaki `show` metodunu çağırır.
- `{id}` parametresi otomatik olarak `$request->param('id')` ile alınır.

---

### Controller Array Handler

[](#controller-array-handler)

```
$router->get('/users', [UserController::class, 'list']);
```

- PHP array syntax ile controller ve method belirtilebilir.

---

Route Parametreleri
-------------------

[](#route-parametreleri)

```
$router->get('/search/{term}', function($request) {
    $term = $request->param('term');
    $page = $request->query('page', 1);
    return "Arama: $term, Sayfa: $page";
});
```

- Path parametreleri: `$request->param('term')`
- Query string: `$request->query('page', 1)`

---

Route Parametrelerini Toplu Alma
--------------------------------

[](#route-parametrelerini-toplu-alma)

```
$router->get('/multi/{foo}/{bar}', function($request) {
    $params = $request->allParams();
    return 'Parametreler: ' . json_encode($params);
});
```

- Tüm path parametreleri dizi olarak alınabilir.

---

Route Gruplama
--------------

[](#route-gruplama)

### Prefix, Namespace ve Middleware ile Grup

[](#prefix-namespace-ve-middleware-ile-grup)

```
$router->group([
    'prefix' => '/admin',
    'middleware' => [AuthMiddleware::class],
    'namespace' => 'App\Controllers'
], function($router) {
    $router->get('/dashboard', 'AdminController@dashboard');
    $router->get('/users', 'UserController@list');
});
```

- `/admin/dashboard` ve `/admin/users` adresleri oluşur.
- Grup içindeki tüm route’lara `AuthMiddleware` uygulanır.
- Handler’lar için namespace otomatik eklenir.

---

### İç İçe (Nested) Grup

[](#i̇ç-i̇çe-nested-grup)

```
$router->group(['prefix' => '/api'], function($router) {
    $router->group(['prefix' => '/v1'], function($router) {
        $router->get('/ping', function() { return 'pong'; });
    });
});
```

- `/api/v1/ping` adresi oluşur.

---

Middleware Kullanımı
--------------------

[](#middleware-kullanımı)

### Global Middleware

[](#global-middleware)

```
$router->middleware(LogMiddleware::class);
```

- Tüm route’lara uygulanır.

### Route Bazlı Middleware

[](#route-bazlı-middleware)

```
$router->get('/secret', function($request) {
    return 'Gizli Alan!';
})->middleware([AuthMiddleware::class]);
```

- Sadece ilgili route’a uygulanır.

### Middleware Sözleşmesi

[](#middleware-sözleşmesi)

Tüm middleware’ler [`MiddlewareInterface`](mgx-router/src/MiddlewareInterface.php) arayüzünü uygulamalıdır.

```
class AuthMiddleware implements MiddlewareInterface
{
    public function handle(Request $request, callable $next): mixed
    {
        if (!$request->header('authorization')) {
            http_response_code(401);
            return 'Yetkisiz!';
        }
        $request->set('user', ['id' => 1, 'name' => 'Test User']);
        return $next($request);
    }
}
```

---

Controller Kullanımı
--------------------

[](#controller-kullanımı)

Controller’lar, route handler olarak kullanılabilir. Örnek:

```
class UserController
{
    public function show($request)
    {
        $id = $request->param('id');
        return "Kullanıcı Detayı: $id";
    }
}
```

- Handler olarak `'App\Controllers\UserController@show'` veya `[UserController::class, 'show']` kullanılabilir.

---

Named Route ve URL Oluşturma
----------------------------

[](#named-route-ve-url-oluşturma)

```
$router->get('/profile/{id}', 'App\Controllers\ProfileController@show')->name('profile.show');

$profileUrl = $router->route('profile.show', ['id' => 42]);
// $profileUrl: "/profile/42"
```

- Route’a isim verilir ve parametrelerle URL oluşturulabilir.

---

Fallback (404) Handler
----------------------

[](#fallback-404-handler)

```
$router->fallback(function() {
    return 'Sayfa bulunamadı!';
});
```

- Hiçbir route eşleşmezse çalışır.

---

Tüm HTTP Metodları
------------------

[](#tüm-http-metodları)

```
$router->put('/put-example', function() { return 'PUT isteği'; });
$router->patch('/patch-example', function() { return 'PATCH isteği'; });
$router->delete('/delete-example', function() { return 'DELETE isteği'; });
```

- PUT, PATCH, DELETE gibi metodlar desteklenir.

---

JSON Body ile Çalışma
---------------------

[](#json-body-ile-çalışma)

```
$router->post('/json', function($request) {
    $data = $request->input();
    return 'JSON: ' . json_encode($data);
});
```

- Content-Type `application/json` ise body otomatik parse edilir.

---

Custom Attribute Kullanımı
--------------------------

[](#custom-attribute-kullanımı)

```
$router->get('/me', function($request) {
    $user = $request->user();
    return 'Giriş yapan: ' . ($user['name'] ?? 'Anonim');
})->middleware([AuthMiddleware::class]);
```

- Middleware ile eklenen attribute’lara `$request->user()` ile erişilebilir.

---

Dispatch İşlemi
---------------

[](#dispatch-i̇şlemi)

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

- Tüm route’lar ve middleware’ler işlenir, uygun handler çalıştırılır.

---

Sınıf ve Dosya Yapısı
---------------------

[](#sınıf-ve-dosya-yapısı)

- [`Router`](mgx-router/src/Router.php): Route ve middleware yönetimi, dispatch işlemi
- [`Route`](mgx-router/src/Route.php): Tekil route nesnesi, handler ve middleware zinciri
- [`Request`](mgx-router/src/Request.php): HTTP istek nesnesi, parametre ve body erişimi
- [`MiddlewareInterface`](mgx-router/src/MiddlewareInterface.php): Middleware sözleşmesi
- [`ControllerResolver`](mgx-router/src/ControllerResolver.php): Controller@method çözümleyici

---

---

Lisans
------

[](#lisans)

MIT

---

Her türlü katkı ve öneri için iletişime geçebilirsiniz.

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance57

Moderate activity, may be stable

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity47

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 ~1 days

Total

3

Last Release

298d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b42021ab0c9856979bc44f582b8f73232f650f6953332322effda7fc3caa5ba6?d=identicon)[Mustafa-Senturk](/maintainers/Mustafa-Senturk)

---

Top Contributors

[![Mustafa-Senturk](https://avatars.githubusercontent.com/u/31421506?v=4)](https://github.com/Mustafa-Senturk "Mustafa-Senturk (8 commits)")

---

Tags

phpmiddlewarerouterPSR-4mgx

### Embed Badge

![Health badge](/badges/mgx-router/health.svg)

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

###  Alternatives

[icamys/php-sitemap-generator

Simple PHP sitemap generator.

175342.8k6](/packages/icamys-php-sitemap-generator)

PHPackages © 2026

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