There is no license information available for the latest version (0.1.0) of this package.

A library for simple routing in PHP

0.1.0 2017-09-11 07:41 UTC

This package is auto-updated.

Last update: 2024-02-14 08:34:11 UTC


A library for simple routing in PHP.


This project uses openclerk/config for config management.

First configure the component with site-specific values:

  "absolute_url" => "http://localhost/path/",

Add a simple router file:

// router.php

require(__DIR__ . "/../inc/global.php");
$path = require_get("path", "security/login/password");

try {
} catch (\Openclerk\RouterException $e) {
  header("HTTP/1.0 404 Not Found");
  echo htmlspecialchars($e->getMessage());

Add a .htaccess that translates paths to this router:

RewriteEngine on

# Forbid access to any child PHP scripts
RewriteRule ^([^\.]+)/([^\.]+).php$   -                   [F]

RewriteRule ^([^\.]+)$                router.php?path=$1  [L,QSA]

Define site routes:

// set up routes
  "security/login/password" => "security/login.php?type=password",
  "security/login/:key" => "security/login-:key.php?type=:key",
  // by default any unmatched routes will require <module>.php

Now you can use url_for() and absolute_url_for():

<a href="<?php echo htmlspecialchars(url_for('security/login/password')); ?>">Login with password</a>

Renderable objects

You can also pass along an object with a render($args) method, which will be called instead:

class MyApi {
  function render($args) {
    // $args = array('code' => ...)

  "api/currency/:code" => new MyApi(),


composer update --dev


  1. Actual documentation
  2. Tests
  3. Publish on Packagist