PHPackages                             kiryi/routyi - 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. kiryi/routyi

ActiveLibrary[Framework](/categories/framework)

kiryi/routyi
============

Routing mechanism for web applications.

1.0.2(6y ago)041GPL-3.0-or-laterPHPPHP ^7.4

Since Apr 4Pushed 6y ago1 watchersCompare

[ Source](https://github.com/KiryiMONZTA/routyi)[ Packagist](https://packagist.org/packages/kiryi/routyi)[ Docs](https://kiryi.net/)[ RSS](/packages/kiryi-routyi/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (2)Versions (4)Used By (0)

Kiryi's ROUTYI
==============

[](#kiryis-routyi)

A routing mechanism for web applications.

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

[](#installation)

```
composer require kiryi/routyi
```

Usage
-----

[](#usage)

First set up the [routing table](#the-routing-table). Then use:

```
$routyi = new \Kiryi\Routyi\Router());
$routyi->route();
```

All endpoint classes have to implement the `Kiryi\Routyi\EndpointInterface` and so must have a method `run(array $params)`.

Constructor Definition
----------------------

[](#constructor-definition)

```
__construct(?string $namespace = null, ?string $routingTableFilepath = null, ?string $configFilepath = null)
```

### Parameters

[](#parameters)

**namespace**
Optional namespace your routing table endpoints start with. If no namespace is provided, endpoints have to be configured with their fully qualified namespace in routing table.

**routingTableFilepath**
Optional filepath to the routing table INI file. It is relative to your project's root directory. If no filepath is provided, default (*config/routing.ini*) is used ([more information](#the-routing-table)).

**configFilepath**
Optional filepath to a configuration INI file. It is relative to your project's root directory. If no filepath is provided, default (*config/routyi.ini*) is used. This filepath is only relevant if you are using a subdirectory ([more information](#using-a-subdirectory)).

Method Definition *route*
-------------------------

[](#method-definition-route)

```
route(): void
```

The Routing Table
-----------------

[](#the-routing-table)

The routing table is an INI file consisting of routes (key) and corresponding endpoints (value). The default filepath is *config/routing.ini*. If you want to change this, see constructor parameter `string $rountingTableFilepath`.

### Basic Structure

[](#basic-structure)

```
/ = Fully\Qualified\Namespace\DefaultController
/foo = Fully\Qualified\Namespace\FooController
/foo/bar = Fully\Qualified\Namespace\BarController
```

The single slash '/' is the default controller. It is used as home page and everytime no actual route is found.

If you want to configure a namespace for the endpoints, see constructor parameter `string $namespace` and the provided [example](#example).

Routes Parameters
-----------------

[](#routes-parameters)

The URL will be processed from the longest possible route to the shortest. As soon as a route from the routing table matches, everything after the route part is considered parameters and gets put into an array, which is passed to the `run` method.

Using a Subdirectory
--------------------

[](#using-a-subdirectory)

If you are using a subdirectory for your web application, you have to specify a configuration INI file with the following content:

```
[routyi]
subDir = {YOURSUBDIRECTORY}
```

The default filepath is *config/routyi.ini*. If you want to change this, see constructor parameter `string $configFilepath`.

Example
-------

[](#example)

*configuration/routes.ini*

```
/ = HomeController
/about = AboutController
```

*src/Bootstrap.php*

```
(new \Kiryi\Routyi\Router('MyProject\\Controller\\', 'configuration/routes.ini'))->route();
```

URL *mydomain.com* will route to `MyProject\Controller\HomeController`.
URL *mydomain.com/about* will route to `MyProject\Controller\AboutController`.
URL *mydomain.com/wrong/route* will route to `MyProject\Controller\HomeController`. Since */wrong/route* is not a matching route, the part is interpreted as parameters and passed to the `run` method of the `HomeController`.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity58

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

Total

3

Last Release

2207d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6ffe67def05c2db0488d5cb9447c425a765764752c0a2cb9e0a254073ac1c25d?d=identicon)[Kiryi](/maintainers/Kiryi)

---

Top Contributors

[![oxSteven](https://avatars.githubusercontent.com/u/57273424?v=4)](https://github.com/oxSteven "oxSteven (12 commits)")

### Embed Badge

![Health badge](/badges/kiryi-routyi/health.svg)

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

###  Alternatives

[laravel/telescope

An elegant debug assistant for the Laravel framework.

5.2k67.8M190](/packages/laravel-telescope)[spiral/roadrunner

RoadRunner: High-performance PHP application server and process manager written in Go and powered with plugins

8.4k12.2M84](/packages/spiral-roadrunner)[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.7M256](/packages/laravel-dusk)[laravel/prompts

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

708181.8M591](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

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

PHPackages © 2026

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