Skip to content
This repository has been archived by the owner on Sep 26, 2019. It is now read-only.
/ xoket-router Public archive

A little router I built to divert myself.

Notifications You must be signed in to change notification settings

jmhobbs/xoket-router

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

What is this?

It's a PCRE based routing engine for PHP.

Where did it come from?

I wrote it from scratch as an exercise after dinner. It was fun.

How does it work?

You specify routes, which are strings like so:

photos/:id(/:action)

The :id and :action are named parameters, and you can do a couple things with them.

You can specify constraints for what they will match:

xoket\Route::add( 'photos/:id(/:action)' )
  ->constraints( array( 'id' => '[0-9]+' ) );

and you can specify defaults:

xoket\Route::add( 'photos/:id(/:action)' )
  ->defaults( array( 'controller' => 'photo', 'action' => 'view' ) );

Now that you have routes, you can match on them:

xoket\Route::match( 'photos/5/delete' );

Route::match will either return false if no match is found, or an array of parameters, like so:

array(
  'directory'  => '',
  'controller' => 'photo',
  'action'     => 'delete',
  'id'         => '5',
)

The use of which is only limited by your imagination.

About

A little router I built to divert myself.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages